こんにちは、私はnode.jsとkueを使って作業しています。これを次のようにjs dateオブジェクトに渡しますタイムゾーンを考慮してJSの日付オブジェクトを作成する方法Node.js/javascript
var today=new Date();
today.setHours(23,00,00);
var email = queue.create('email', {
title: 'Account renewal required'
, to: '[email protected]'
, template: 'renewal-email'
}).delay(today)
.priority('high')
.save();
これはうまく動作しますが、仕事は私のタイムゾーンはUTC + 8であるため、つまり、7.00時にトリガー、その日付のデフォルトのタイムゾーンはUTCです。
ので
私はNode.jsのと、このような何かを行うためmoment-timezoneモジュールを使用しようとしました。
var today = moment().tz("Asia/Hong_Kong").toDate();
today.setHours(23,00,00);
var email = queue.create('email', {
title: 'Account renewal required'
, to: '[email protected]'
, template: 'renewal-email'
}).delay(today)
.priority('high')
.save();
しかし、あなたはそれがタイムゾーンを無視toDate()
を使用するので、私はここで立ち往生していたときに私が見つけたが、私は2日間多くのことを検索し、私は解決策を見つけることができませんでした。
これを達成する方法はありますか、事前に感謝してください。
あなたが実際に望むのは、そのタイムゾーンを使って '23:00'を解析し、それを日付オブジェクトに設定しないことです。 – Bergi
私はそう思います、それを行う方法はありますか? –
おそらく翌日の07:00に実行されていると思われます。あなたのタイムゾーンのオフセットで時刻を調整してください。 'today.setMinutes(today.getMinutes()+ today.getTimezoneOffset())'はDateから8時間(javascriptのタイムゾーンは-ve + UTCです)を引いて、予想される時間(およびmoment.jsを使用しないでください)。 – RobG