如何将JavaScript日期转换为不同的时区



如果我运行var myDate = new Date('29-06-2016 10:00'), myDate将只包含一个东西:一个数字。从01-01-1970 00:00:00 GMT到29-06-2016 10:00:00 XXX的毫秒数

XXX为操作系统的时区。在我的例子中,BST(因为它是一个夏天的日期,在冬天将是GMT)。

现在…如果我想要从1970年1月1日开始的毫秒数……到2016年6月29日10:00:00 GMT-7?

我只找到方法来告诉我什么时间是在GMT-7时区,而在BST时区是2016-06-29 10:00:00,但这不是我要找的!

另外,不能将环境变量更改为GMT-7时区。

我认为您需要以下格式的日期字符串

"2016-06-29T10:00:00-07:00"

允许您设置相对GMT时区(不是100%确定时区,但它是客户端,因此确实取决于他们的区域设置)。

我有一个类似的事情,JS正在改变日期对象的时间,我发现的唯一方法是设置日期并设置这个。

额外的信息,从使用以下字符串格式的。net DateTime获取。

"yyyy-MM-ddTHH:mm:sszzz"

我想我找到了一种方法,使用moment.js作为erik的建议:

// This code is running in a Node.js server configured to use UTC
// Incorrect date, as it is interpret as UTC.
// However, we do this to get the utcOffset
var auxDate = moment.tz(new Date('2016-6-23 10:15:0'), 'US/Mountain');
// Get the milliseconds since 1970 of the date as if it were interpreted 
// as GMT-7 or GMT-6 (depends on the date because of Daylight Saving Time)
var milliseconds = auxDate.valueOf() - auxDate.utcOffset() * 60000;

相关内容

  • 没有找到相关文章

最新更新