kev*_*ius 4 javascript time date
我有这两个控制台日志,但它们返回不同的时间(-2小时关闭).
console.log(new Date()) // Date 2015-04-20T15:37:23.000Z
console.log(Date()) // "Mon Apr 20 2015 17:37:23 GMT+0200 (CEST)"
Run Code Online (Sandbox Code Playgroud)
我知道使用Data()与使用构造函数和调用.toString()相同.
但是,我确实需要Date()时间而不是新的Date()时间.那么为什么它会返回错误的时间,如何重置它以输出正确的时间呢?
谢谢,
那么为什么它会返回错误的时间,如何重置它以输出正确的时间呢?
您的第一个语句是console.log使用Date对象调用.看来,您使用的任何浏览器/控制台插件都选择Date使用UTC中的ISO-8601字符串来显示该对象.例如,格式由console实现选择.
您的第二个语句是console.log使用字符串调用,因此Date实现选择格式.该规范不要求从JavaScript引擎到JavaScript引擎的字符串格式必须是什么(是的,真的*),而不是它必须在本地时区.
显然,在您的浏览器上,console实现和Date#toString实现不匹配.
但是,我确实需要Date()时间而不是新的Date()时间.
这些字符串定义了相同的时刻(加或减几微秒); 只是字符串已经准备好了不同的时区设置.
如果需要在本地时间将字符串记录到控制台,请使用
console.log(String(new Date()));
Run Code Online (Sandbox Code Playgroud)
...从Date对象中可靠地获取字符串,而不是由对象生成的字符串console.
*Yup,你得到的格式Date#toString是未定义的,完全取决于JavaScript的实现; 唯一的要求是,Date()并且Date.parse()可以解析字符串toString输出并返回原始日期.(在ES5之前,JavaScript甚至没有标准的日期/时间格式,它只适用于该toISOString方法,而不是toString.并且ES5稍微有点错误,并且必须在ES6中进行修改,导致目前不幸的情况Chrome做了一件事,Firefox在以新的日期/时间格式解析字符串而没有时区的情况下做另一件事.)
| 归档时间: |
|
| 查看次数: |
5109 次 |
| 最近记录: |