我有一个现有的日期时间字符串
new Date('2014-08-01T00:00:00')
但是,在实际angularJS视图中,它返回的不是2014-08-01,而是2014-07-31。
我想知道这个日期时间字符串是否有效,如果不是,为什么它无效。
T
是否是字符串返回错误日期的原因?
console.log返回日期Thu Jul 31 2014 20:00:00 GMT-0400 (EDT)
谢谢您
让我们称这些-2是有毒的唐斯。他们真的应该回忆起那些他们努力理解现在浮现在他们面前的基本概念的日子。这是一种耻辱。
3条答案
按热度按时间0dxa2lsx1#
目前(2014年秋季),JavaScript的日期/时间格式在一个非常重要的方面与ISO-8601不同:如果字符串中没有时区指示符,则假定为
Z
(“Zulu”,GMT)。所以
...是格林尼治标准时间8月1日午夜.如果你住在格林尼治标准时间以东,那就是当地时间的31号.
但是,ES6中已经修复了与ISO-8601的不兼容问题,并且一些实现(包括Chrome中最新的V8)已经在更新它。ES6规范将默认时间更改为本地时间;请查看draft PDFs中的§20.3.1.15(“日期时间字符串格式”,章节编号可能会更改)或这个非官方的HTML版本。
neekobn82#
显示的日期使用您的浏览器/计算机的时区。这意味着如果您使用GMT-1并输入
2014-08-01T00:00:00
,则实际日期为2014-08-01T00:00:00 - 1 hour
=2014-07-31T23:00:00
tf7tbtn23#
我在startdate=2021-10- 27 T00:00:00-04:00中有此日期,d=new Date(data.StartDate)// outputTue Oct 26 2021 23:00:00 GMT-0500但在中部时区中,日期比“Tue Oct 26 2021 23:00:00 GMT-0500”早一天(低于-6、-7、-8...)。
实际上,我使用了这个,它是工作正常,但对于中央时区不工作var d =新日期(数据.开始日期);控制台日志(数据开始日期);如果您有任何问题,请联系我们。如果您有问题,请联系我们。