javascript - 在nodejs中将服务器时间转换为任何给定的本地时间
问题描述
这是我在我的服务器端 nodejs 中运行的用于转换的代码。
convertNowToTimezone = (localOffset) => {
let d = new Date();
let millis = d.getTime() + (d.getTimezoneOffset() * 60000); //convert server local time to UTC millisec
d.setTime(millis - (localOffset * 60000)); //convert UTC millisec to required local time
return d;
}
localOffset 是 -330(IST 偏移量),这给出了 4 分钟的差异。
如何正确处理这件事?
解决方案
我建议使用moment
在 javascript 中处理日期。
您可以使用moment-timezone轻松管理时区
const moment = require('moment-timezone');
moment().tz("UTC").format();
moment().tz("America/Los_Angeles").format();
console.log(moment().tz("UTC").format());
console.log(moment().tz("America/Los_Angeles").format());
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
localOffset 是 -330(IST 偏移量),这给出了 4 分钟的差异。
检查您的服务器时间是否同步。如果您使用的是 linux 服务器,则可以使用ntp 。
推荐阅读
- google-analytics - 检索一个产品的多个 Google Analytics 行是产品范围的 customDimension 值在 Google Big Query 中不同
- python - 如何让用户创建任意数量的字典
- java - 如果数组具有重复的元素,则在Java中进行2路合并
- c# - EF Core 3.1 调用 context.Add() 在使用 SQL 中的序列的模型上抛出“可为空的对象必须有一个值”
- python - 从文本文件中读取某一行并仅打印该行的一部分
- laravel - 如何使用 Laravel 显示数据库通知?
- json - 在列表中显示列表中的控件信息
- react-native - 在 android 上反应原生滚动视图。滚动时,子项与边框半径重叠
- node.js - MongoDB 4.2:仅当它是虚假的时才通过 id 查找并更新另一个字段(布尔值),并确定空响应的原因
- computer-science - TEXT 段和 .text 段之间的区别