首页 > 解决方案 > 如何获取我的应用程序所在的当前时区

问题描述

我已经有这个问题好几个月了,我终于取得了一些进展。我正在编写一个应用程序,它会在东部时间上午 9 点和晚上 9 点的特定时间向我发送消息。当我在本地运行它时,它运行良好,但是当我部署它时,我什么也得不到。我在胡闹,然后我看到了这个 Heroku Logs。我的猜测是我的应用程序位于不同时区的服务器上,并且当下面的代码运行时。条件永远不会满足,也不会发送任何内容。我现在的问题是,有没有一种方法可以获取当前时间并进行比较,而不管服务器位于哪个时区?

const sendMessage = require('./sms-api.js');

const send = () =>{

    setInterval(()=>{

        var x = new Date().toLocaleTimeString();
        console.log(x);
    
       if(x === '11:00:10 AM')
       {
           console.log('match');
           return sendMessage('6178032176', 'Good Morning');
       }
       else if(x === '9:50:20 PM')
       {
           console.log('match');
           sendMessage('6178032176', 'Good Evening');
       }
    },1000)
}

send();

标签: node.jsapiexpressherokusms

解决方案


在使用不同的时区时,最好在 UTC 中工作,然后根据所需的时区进行偏移。

获取 UTC 时间,然后根据所需的时区进行偏移。

您还可以使用专用库,例如moment-timezone​​ .
https://momentjs.com/timezone/docs/


推荐阅读