0

こんにちは、node.js とkueを使用しています。ジョブを将来の時間まで遅らせたいのですが、このような js 日付オブジェクトを渡します。

var today=new Date();
today.setHours(23,00,00);

var email = queue.create('email', {
    title: 'Account renewal required'
  , to: 'tj@learnboost.com'
  , template: 'renewal-email'
}).delay(today)
  .priority('high')
  .save();

これはうまく機能しますが、ジョブは午前 7 時にトリガーされます。これは、timeZone が UTC + 8 であるため、日付のデフォルトのタイムゾーンが 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: 'tj@learnboost.com'
      , template: 'renewal-email'
    }).delay(today)
      .priority('high')
      .save();

しかし、使用するtoDate() とタイムゾーンが無視されることがわかったので、ここで立ち往生しています。2日間たくさん検索しましたが、解決策が見つかりませんでした。

これを達成する方法はありますか、助けてください、よろしくお願いします。

4

2 に答える 2