节点cron与时区

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

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 ,我错过了什么?

因为node-cron模块中有错误。 我已经发送了一个pull请求来解决这个问题。 您可以在本模块的本地副本中更改此行。

您也可以使用几个函数参数来初始化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);