解析日期没有时区的JavaScript
我想在JavaScript中解析没有时区的日期。 我努力了:
new Date(Date.parse("2005-07-08T00:00:00+0000"));
退货周五2005年7月08日02:00:00 GMT + 0200 (中欧夏令时间)
new Date(Date.parse("2005-07-08 00:00:00 GMT+0000"));
返回相同的结果
new Date(Date.parse("2005-07-08 00:00:00 GMT-0000"));
返回相同的结果
我想解析时间:
没有时区。
不调用构造函数Date.UTC或新日期(年,月,日)。
只需简单地将字符串传入Date构造函数(不使用原型方法)即可。
我必须产生Date
对象,而不是String
。
日期被正确解析,它只是将它转换为当地时区的toString:
> new Date(Date.parse("2005-07-08T11:22:33+0000"))
Fri Jul 08 2005 13:22:33 GMT+0200 (CEST)
> new Date(Date.parse("2005-07-08T11:22:33+0000")).toUTCString()
"Fri, 08 Jul 2005 11:22:33 GMT"
Javascript日期对象是时间戳 - 它们仅仅包含自时代以来的毫秒数。 Date对象中没有时区信息。 这个时间戳表示的日历日期(日,分,秒)是解释的一个问题(其中一个是to...String
方法)。
以上示例显示日期正确解析 - 也就是说,它实际上包含与GMT中的“2005-07-08T11:22:33”相对应的毫秒量。
我有同样的问题。 我得到一个日期作为一个字符串,例如:'2016-08-25T00:00:00',但我需要有正确的时间日期对象。 要将String转换为对象,我使用getTimezoneOffset:
var date = new Date('2016-08-25T00:00:00')
var userTimezoneOffset = date.getTimezoneOffset() * 60000;
new Date(date.getTime() + userTimezoneOffset);
我遇到了同样的问题,然后想起了我正在研究的遗留项目以及他们如何处理这个问题。 我当时并不理解它,直到我自己遇到问题时才真正关心它
var date = '2014-01-02T00:00:00.000Z'
date = date.substring(0,10).split('-')
date = date[1] + '-' + date[2] + '-' + date[0]
new Date(date) #Thu Jan 02 2014 00:00:00 GMT-0600
无论出于何种原因将日期传递为'01-02-2014',都会将时区设置为零并忽略用户的时区。 这可能是Date类中的一种侥幸,但它在一段时间之前存在并且存在于今天。 它似乎可以跨浏览器工作。 自己尝试一下。
此代码在全球项目中实施,其中时区非常重要,但查看日期的人员并不在意它引入的具体时间。
链接地址: http://www.djcxy.com/p/3073.html