将服务器时间转换为nodejs中的任何给定本地时间

时间:2018-05-01 15:16:11

标签: javascript node.js server utc timezone-offset

这是我在服务器端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分钟的差异。

如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我建议使用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

答案 1 :(得分:0)

JS直线上升:

const dateISOString = '2019-10-03T02:45:02'; // UTC server time or --> new Date()
const aest = new Date(new Date(dateISOString).toLocaleString('en-AU', { timeZone: 'Australia/Sydney' }));
console.log("aest.toISOString(): " + aest.toISOString());