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"