带时区的node-cron

Joa*_*vcm 5 javascript cron timezone node.js

我有一个节点(v0.7.3-pre)服务器与node-cron(0.3.2)和节点时间(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);
Run Code Online (Sandbox Code Playgroud)

它运行,但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:
...
Run Code Online (Sandbox Code Playgroud)

zone被设置为undefined,我失去了什么?

Vad*_*hev 5

因为node-cron模块中存在错误.我已经发送了一个解决它的拉取请求.您可以在此模块的本地副本中更改此行.

您还可以使用多个函数参数来初始化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);
Run Code Online (Sandbox Code Playgroud)