Node.js 在不同于服务器时区(UTC)的时区(CST)内每午夜执行一次功能
我有一个时区:例如“美国/芝加哥” 让timerTimeZone=“美国/芝加哥” 我们的服务器本地时间是UTC 我想在timerTimeZone变量中存储的时区中,每晚12:00执行一个函数 假设该程序在UTC下午6:00/CST下午1:00运行。因此,第一次执行应在11小时后(CST上午12:00)进行,接下来每24小时执行一次Node.js 在不同于服务器时区(UTC)的时区(CST)内每午夜执行一次功能,node.js,momentjs,moment-timezone,Node.js,Momentjs,Moment Timezone,我有一个时区:例如“美国/芝加哥” 让timerTimeZone=“美国/芝加哥” 我们的服务器本地时间是UTC 我想在timerTimeZone变量中存储的时区中,每晚12:00执行一个函数 假设该程序在UTC下午6:00/CST下午1:00运行。因此,第一次执行应在11小时后(CST上午12:00)进行,接下来每24小时执行一次 我一直在尝试使用矩和矩时区,但找不到任何方法。我建议使用优秀的模块 这允许您根据cron表达式安排任务,还允许您指定要使用的IANA时区 我也在这里记录下一个作业将
我一直在尝试使用矩和矩时区,但找不到任何方法。我建议使用优秀的模块 这允许您根据cron表达式安排任务,还允许您指定要使用的IANA时区 我也在这里记录下一个作业将在指定时区和UTC中运行的5个日期
const CronJob = require("cron").CronJob;
// Run at midnight every night
const cronExpression = "00 00 * * *";
const timeZone = "America/Chicago";
const cronJob = new CronJob(
cronExpression,
cronFunction,
null,
true,
timeZone
);
function cronFunction() {
console.log("cronFunction: Running....");
/* Do whatever you wish here... */
}
// Get the next N dates the job will fire on...
const nextDates = cronJob.nextDates(5);
console.log(`Next times (${timeZone}) the job will run on:`, nextDates.map(d => d.tz(timeZone).format("YYYY-MM-DD HH:mm")));
console.log("Next times (UTC) the job will run on:", nextDates.map(d => d.utc().format("YYYY-MM-DD HH:mm")));