1

我正在使用 globalize 来格式化每个语言环境的日期时间。

var Globalize = require('globalize');
var formatter = Globalize('en-US').dateFormatter();
formatter(new Date());

它很好用,但我想知道是否可以为特定时区格式化日期。这样,它总是在本地机器时区格式化日期。例如,假设我的机器时区是 PST。我可以使用 globalize 在 EST 中格式化日期吗?

4

2 回答 2

0

从这里偷来的

该解决方案通过使用getTimeOffset()(返回 UTC 时间和本地时间之间的时间差,以分钟为单位)函数来查找给定位置的 UTC 时间偏移并将其更改为毫秒,然后从 UTC 执行计算以返回不同时区的时间。

/** 
 * function to calculate local time
 * in a different city
 * given the city's UTC offset
 */
function calcTime(city, offset) {

// create Date object for current location
var d = new Date();

// convert to msec
// add local time zone offset
// get UTC time in msec
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

// create new Date object for different city
// using supplied offset
var nd = new Date(utc + (3600000*offset));

// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}

此解决方案可行,但以分钟表示时区并调整 UTC 分钟更简单。

请让我知道这是否适合您!

于 2017-03-17T03:52:29.870 回答
-1

javascript 函数new date()根据调用函数时的机器时间生成日期/时间戳。因此,如果该函数由位于阿拉斯加的机器调用,它将根据当时阿拉斯加的当前时间生成日期/时间戳。

w3school.com 对大多数与编码相关的项目都有很好的参考。您可以在此处找到问题的答案。

于 2017-03-17T04:08:35.763 回答