首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在与服务器时区(UTC)不同的时区(CST)中,每天午夜执行函数

在与服务器时区(UTC)不同的时区(CST)中,每天午夜执行函数
EN

Stack Overflow用户
提问于 2020-10-22 07:40:20
回答 1查看 187关注 0票数 1

我有一个时区(timerTimeZone):例如“美国/芝加哥”。

让timerTimeZone =“美国/芝加哥”

我们的服务器本地时间是UTC。

我想在存储在timerTimeZone变量中的时区中,每晚12点执行一个函数。

假设程序在UTC时间6.00 PM / CST 1.00 PM运行。因此,第一次执行应该是在11小时(12:00 AM CST)之后,下一次执行每24小时执行一次。

我一直在尝试使用moment和moment-timezone,但找不到任何方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 17:13:00

我建议使用优秀的Cron模块。

这允许您根据cron表达式调度任务,还允许您指定要使用的IANA时区。

我还在这里记录了作业将在指定的时区和UTC中运行的下5个日期。

代码语言:javascript
复制
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")));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64473195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档