new Date()解析兼容性
new Date() parsing compatibility
我正试图将一个字符串转换为Date
对象,这似乎存在许多跨浏览器兼容性问题。
我的字符串很简单"2016-1-11 10:30"。代码也是简单的
var d = new Date(str);
Firefox和Chrome都对这种格式感到满意,但Safari拒绝将其转换为有效对象。
有没有一种方法或javascript库可以解决这个问题?
Safari讨厌使用连字符作为日期分隔符。
尝试使用以下代码将它们替换为斜杠
var d = new Date(str.replace(/-/g, "/")));
它将用一个正斜杠替换所有出现的-,并将您的日期重新格式化为:2016/1/11 10:30。这应该会让Safari足够满意,但如果您依赖连字符格式,可能会对代码产生其他影响。
正如@James Thorpe所说,moment.js是前进的道路。如果你不可能包含moment.js,那么这里的标准格式应该是YYYY-MM-DDTHH:mm:ssZ
Chrome和Firefox会原谅你,但所有浏览器都不会。
相关文章:
- 在事件上打开Materialize Date Picker
- 在经过DATE验证的列中创建null值
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- 为什么要做新的.Date()与new相差1小时.日期().到ISOString()
- 三js浏览器兼容性
- 返回值+new Date()与Date.now()是否不同
- Javascript Date.toString() formatting?
- Javascript返回错误的Date值(NodeJS)
- date对象未在javascript中返回正确的日期值
- 当点击今天按钮时,Bootstrap Date Time Picker未选择当前时间
- 新Date()javascript的日期字符串
- JavaScript“new Date()”使用哪个时区
- Date对象未返回预期年份
- Date.js错误地分析了ISO 8601 UTC日期
- JS:如何将字符串(“2015年3月10日”)转换为Date对象
- Bootstrap-Datepicker not selecting date when using "set
- JS RegEx for date&名称规则
- 当绑定到Date()-对象时,如何格式化input[time]的值
- AngularJS:如何访问自定义指令中的input[date]min属性
- new Date()解析兼容性