Chrome浏览器用删除T的格式设置日期和时间,当时间为零时,其他答案不起作用
Chrome browser Format date with remove T and time when time is zero other answers are NOT working
Chrome浏览器显示错误的日期,而Firefox显示正确的日期
我正在使用人们多次投票支持的代码
F12并在Chrome和Firefox中运行此fiddle,我只关心Chrome
http://jsfiddle.net/bthorn/foag0zew/
//This works fine to convert
var dateString = "2015-10-14T17:54:19.033";
没有时间,这最终不起作用,显示的是10/27/15,而不是正确的10/28/15
var dateString2 = "2015-10-28T00:00:00";
代码(也在小提琴中)
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);
这实际上是由于Chrome最近在正确支持ES6规范方面发生了一些变化。参见Chromium第539813和543320期,以及ECMAScript tc39第87期
基本上发生的是:
-
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
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 高库存时期时间与时区不匹配
- Jquery如何检查今天的时间大于使用给定时间
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- Jquery函数在错误的时间提交
- 将日期和时间转换为UTC格式的日期-Javascript