Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不同的日期值_Javascript_Datetime - Fatal编程技术网

Javascript 不同的日期值

Javascript 不同的日期值,javascript,datetime,Javascript,Datetime,为什么将日期转换为时会发生这种情况 请注意,每个变量的小时是不同的…var now=new Date()在本地时区打印出来 var nowJSON=now.toJSON()在UTC时区打印出来toJSON()方法将日期对象转换为字符串,格式为JSON日期ISO-8601(YYYY-MM-DDTHH:MM:ss.sssZ) 请参阅:-引用有关MDN的文档: 调用toJSON()返回一个字符串(使用toISOString()) 及 方法返回简化扩展ISO格式的字符串 格式(ISO 8601),长度始

为什么将日期转换为时会发生这种情况

请注意,每个变量的小时是不同的…

var now=new Date()在本地时区打印出来

var nowJSON=now.toJSON()
在UTC时区打印出来

toJSON()方法将日期对象转换为字符串,格式为JSON日期ISO-8601(
YYYY-MM-DDTHH:MM:ss.sssZ


请参阅:-

引用有关MDN的文档:

调用toJSON()返回一个字符串(使用toISOString())

方法返回简化扩展ISO格式的字符串 格式(ISO 8601),长度始终为24个字符: YYYY-MM-DDTHH:MM:ss.sssZ。时区始终为零UTC偏移,如下所示: 由后缀“Z”表示

由于您的日期偏移量为1小时,JSON日期将提前一小时。

new date()
打印到控制台时,您的操作系统将定义打印的区域设置和格式
2015年4月29日星期三18:15:33 GMT+0100(GMT夏令时)
是您的浏览器默认设置

打印
.toJSON
时,会发生以下情况:

此函数提供日期对象的字符串表示形式,供JSON.stringify(15.12.3)使用

使用参数键调用toJSON方法时,将执行以下步骤:

  • 让O作为调用ToObject的结果,将this值作为其参数
  • 让tv成为TopPrimitive(O,提示编号)
  • 如果tv是一个数字且不是有限的,则返回null
  • 让toISO成为使用参数“toISOString”调用O的[[Get]]内部方法的结果。 5.如果IsCallable(toISO)为false,则抛出TypeError异常
  • 返回调用toISO的[[Call]]内部方法的结果,其中O作为this值,参数列表为空

  • 15.9.5.43 Date.prototype.toISOString()

    此函数返回一个字符串值,该字符串值表示此日期对象表示的时间实例。字符串的格式为15.9.1.15中定义的日期-时间字符串格式。字符串中存在所有字段。时区始终为UTC,由后缀Z表示。如果此对象的时间值不是有限数,则会引发RangeError异常


    15.9.1.15日期时间字符串格式

    ECMAScript基于ISO 8601扩展格式的简化定义了日期时间的字符串交换格式。格式如下:YYYY-MM-DDTHH:MM:ss.sssZ



    原因特别是,可以将日期序列化为字符串,然后将其带回对象,而不会丢失任何数据。

    这是同一时间。Z是zulu-表示UTC/GMT的零小时偏移量,其中GMT+0100是GMT时间的1小时。new Date()+“”或(new Date())。toString()可能适用于您一个漂亮而全面的答案。
    var now = new Date();
    // returns Wed Apr 29 2015 18:15:33 GMT+0100 (GMT Daylight Time)
    
    var nowJSON = now.toJSON();
    // returns "2015-04-29T17:15:33.863Z"