node.js - 如何获取我的应用程序所在的当前时区
问题描述
我已经有这个问题好几个月了,我终于取得了一些进展。我正在编写一个应用程序,它会在东部时间上午 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();
解决方案
在使用不同的时区时,最好在 UTC 中工作,然后根据所需的时区进行偏移。
获取 UTC 时间,然后根据所需的时区进行偏移。
您还可以使用专用库,例如moment-timezone
.
https://momentjs.com/timezone/docs/
推荐阅读
- node.js - 一个查询中的 node-oracledb 多个语句
- java - JFreeChart XY 图中图标的角度
- c++ - 有没有办法使用 c/c++ 中的宏/模板生成具有迭代编号的函数名称?
- flutter - 在自定义挂钩中使用riverpod
- json - 如何优化此 JSON Script VBA 代码以使其不会在 Excel 2019 上崩溃
- node.js - 如何使用因子捆绑修复错误 catlistener
- reactjs - Azure Devops:应用服务中的 React 应用返回 404
- python - Python请求表单数据方法
- python - Python 导入正确,但 Pylint 失败
- ios - 如何更改紧凑日期 UIPickerView 的强调色?