带时区的node-cron

时间:2012-06-06 16:48:11

标签: javascript node.js cron timezone

我有一个node(v0.7.3-pre)服务器node-cron(0.3.2)和node-time(0.8.2):

var cronJob = require('cron').CronJob;
var cronJ = new cronJob({
 cronTime: "00 29 16 6 * *",
 onTick: function() {
  console.log("Tick");
 },
 start:true,
 timeZone: "America/Los_Angeles"
});
console.log(cronJ);

它运行,但Cron总是使用服务器时间(UTC),返回的cron是:

{ _callbacks: [ [Function] ],
  onComplete: undefined,
  cronTime:
   { source: '00 29 16 6 * *',
     zone: undefined,
     second: { '0': true },
     minute: { '29': true },
     hour: { '16': true },
     dayOfWeek:
...

zone设置为undefined,我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

因为node-cron模块中存在错误。我已经发送了pull request来修复它。您可以在此模块的本地副本中更改此行。

您还可以使用多个函数参数来初始化cronJob而不是一个对象:

var cronJob = require('cron').CronJob;
var cronJ = new cronJob("00 29 16 6 * *", function() {
        console.log("Tick");
}, undefined, true, "America/Los_Angeles");

console.log(cronJ);