Javascript Chrome浏览器格式日期和时间为零时删除T和时间其他答案不起作用
Chrome浏览器显示错误的日期,而Firefox显示正确的日期 我使用的代码,人们已经投票多次 F12,在Chrome和Firefox中运行这个提琴,我只关心Chrome 没有时间,结果无法工作,显示的是10/27/15,而不是正确的10/28/15Javascript Chrome浏览器格式日期和时间为零时删除T和时间其他答案不起作用,javascript,jquery,google-chrome,datetime,Javascript,Jquery,Google Chrome,Datetime,Chrome浏览器显示错误的日期,而Firefox显示正确的日期 我使用的代码,人们已经投票多次 F12,在Chrome和Firefox中运行这个提琴,我只关心Chrome 没有时间,结果无法工作,显示的是10/27/15,而不是正确的10/28/15 var dateString2 = "2015-10-28T00:00:00"; 代码(也用小提琴) 这实际上是由于最近Chrome在正确支持ES6规范方面的一些变化。参见铬问题和,以及 基本上发生的情况是: ES5用于指定不带偏移量的IS
var dateString2 = "2015-10-28T00:00:00";
代码(也用小提琴)
这实际上是由于最近Chrome在正确支持ES6规范方面的一些变化。参见铬问题和,以及 基本上发生的情况是:
- ES5用于指定不带偏移量的ISO格式的字符串被视为UTC,但没有任何实现支持这一点,因为根据ISO8601,它应该默认为本地字符串,而不是UTC。所以,这在ES6中是固定的
- Chrome实现了这一更改,因为以前仅日期值被解释为UTC,而日期+时间值被解释为本地时间
- Chrome决定恢复更改并恢复旧的行为。就我个人而言,我认为这是一个错误——但其他人不同意
- 当他们恢复更改时,他们无意中将仅日期值和日期+时间值切换回UTC默认值,而不仅仅是仅日期值。现在,您的日期+时间值将以UTC而不是本地时间进行解释
var s1 = "2015-10-28T00:00:00";
var s2 = s1.replace(/-/g,'/').replace('T',' '); // "2015/10/28 00:00:00"
var d = new Date(s2); // now will parse as local in all browsers
哇,很好的解释
var dateString2 = "2015-10-28T00:00:00";
var date2 = new Date(dateString2);
var formattedDateString2 = (date2.getMonth() + 1) + "/" + date2.getDate() + "/" + date2.getFullYear().toString().substr(2, 2);
console.log(formattedDateString2);
var s1 = "2015-10-28T00:00:00";
var s2 = s1.replace(/-/g,'/').replace('T',' '); // "2015/10/28 00:00:00"
var d = new Date(s2); // now will parse as local in all browsers