节点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);