【发布时间】:2016-03-14 18:15:02
【问题描述】:
我将这个新日期传递到 Firefox 和 Chrome 控制台(同一台计算机和时区),我得到的结果好坏参半。太令人困惑了...... 镀铬 新日期(); //2015 年 12 月 9 日星期三 18:06:55 GMT+0530 (IST)
在火狐中 新日期(); //日期 2015-12-09T12:36:34.410Z
【问题讨论】:
标签: javascript date time
我将这个新日期传递到 Firefox 和 Chrome 控制台(同一台计算机和时区),我得到的结果好坏参半。太令人困惑了...... 镀铬 新日期(); //2015 年 12 月 9 日星期三 18:06:55 GMT+0530 (IST)
在火狐中 新日期(); //日期 2015-12-09T12:36:34.410Z
【问题讨论】:
标签: javascript date time
您的困惑是由于显示的时区不同造成的。
Chrome 为您提供 UTC+0 时间,而 Firefox 为您提供 GMT+0530 时间。
你可以通过写来指定你希望两者都始终是UTC
var myDate = new Date();
myDate.toISOString() // will give you a date in the format you see by Chrome
【讨论】:
Date 对象具有相同的值,这里的区别纯粹是它在变成字符串时是如何输出。
您看到的是Date.prototype.toString 的结果,它完全 依赖于实现。因此,您很可能会在您测试的每个客户端中看到不同的字符串。
您可以使用toISOString 来获取ISO 8601 格式字符串,即UTC。有一个polyfill on MDN。
document.write(new Date().toISOString());
【讨论】:
Firefox 不喜欢字符串中的“-”
使用正则表达式将所有出现的 - 替换为 /,然后将字符串转换为 Date 对象。
var str = '01-25-2019 10:28:15 AM';
str = str.replace(/-/g,'/'); //replaces all occurances of "-"
with "/"
var dateobject = new Date(date_string);
alert(dateobject.toDateString());
【讨论】: