2017-01-03 6 views
0

コペンハーゲン時間15:00にジョブをスケジュールしたいと思います。私は 'node-schedule' npmモジュールを使用しています。特定のタイムゾーンの任意の時刻にnode-scheduleモジュールによってジョブをスケジュールする方法

+1

UTCに変換 "コペンハーゲン時間"、そして '新しい日付(として、Date.UTC(...))を使用して日付を設定し'。あなたは夏時間をどのように扱いますか? – RobG

答えて

0

私はこの問題のために大いに作業し、解決策を見つけました。

コペンハーゲン/時間帯:中央ヨーロッパ時間(UTC + 01:00)CETのオフセット UTCは(中央ヨーロッパ時間)の時間帯は1です:00。

コペンハーゲン時間をUTC時間に変換するには、コペンハーゲン時間から1時間を引く必要があります。 例:上記のコンソール

var copenhagenHour = 15;//You can set any hour at which you want to schedule a job 
var copenHagenMinutes = 0;//You can set any minute 
var date = new Date(); 
date.setUTCHours(copenhagenHour - 1);//-1 defines the UTC time offset for a particular timezone 
date.setUTCMinutes(copenHagenMinutes); 

var scheduledRoutes = schedule.scheduleJob({hour: date.getHours(), minute: date.getMinutes()}, function(){ 
console.log('call scheduled job'); 
}); 

:コペンハーゲン15:00 =午後02時UTC

我々は15:00コペンハーゲンとサーバでジョブをスケジュールしたい場合は、どこでも、我々は、次のアプローチを使用することができます実行されていますコペンハーゲンでは15:00に、インドでは19:30に「スケジュールされた仕事に電話する」と表示されます。

それは私のために働いた。

注:現在、私は「夏時間」は考慮しませんでした。

+1

あなたは、現地日がコペンハーゲンの日付と同じであると仮定しています。そうでないかもしれないので、間違った日に時間を設定しているかもしれません。また、時間帯が1時間の偶数倍であると仮定しています.15分と30分のオフセットがあるものもあります。 – RobG

1

あなたがしたことは大丈夫ですが、http://momentjs.com/timezone/docs/のような時間をlibで設定する必要があります。

var a = moment.tz("2013-11-18 11:55", "America/Toronto");

+0

特定のタイムゾーンに基づいてジョブのタイミングを設定する目的をどのように解決できますか? –

+0

@RobGは何を言いましたか?コペンハーゲン時間をUTCに変換して、ジョブをスケジュールします。 – ismatim

関連する問題