我在英国工作,所以当我尝试用JavaScript解析一个新的日期时如下:
new Date('2016-06-03T09:05:15');
以下日期的结果:
Fri Jun 03 2016 10:05:15 GMT+0100 (BST)
我希望按日期解析日期,并且不要进行区域设置调整(在本例中为BST)。如果不编写我自己的日期/时间解析器,这是否可以实现?
答案 0 :(得分:0)
我希望按日期解析日期,并且不要进行区域设置调整(在本例中为BST)
这正是应该出现的情况,但它并不适用于所有浏览器。您不应该使用Date构造函数或Date.parse解析字符串(它们等同于解析)。总是手动解析字符串,库可以提供帮助,但通常没有必要。
根据EMCAScript 2015,' 2016-06-03T09:05:15'应该被解析为" local"日期(即基于所提供日期和时间的日期,时间和时区的主机系统设置)。 Date对象的时间值是UTC,因此在创建时间值时,会考虑主机设置。相同的设置也用于输出,因此如果OP字符串被正确解析然后写入输出,您应该返回完全相同的日期和时间(尽管可能采用不同的格式)。
如果您从输入字符串中看到不同的时间,则字符串未被正确解析(因此建议手动解析字符串)。
如果不编写自己的日期/时间解析器,这是否可以实现?
是的,使用别人写的图书馆。但是,如果您还希望忽略输出的主机设置,您还需要编写自己的格式化程序,或者使用库。
好消息是有很多可供选择。