new Date()在Safari中使用Javascript [英] new Date() using Javascript in Safari
问题描述
我在Javascript中使用新的Date()函数有问题。 Safari给我一个无效的日期消息。
I'm having an issue using the new Date() function in Javascript. Safari is giving me an "Invalid Date" message.
我在 jsbin 。
这似乎适用于所有其他浏览器,但不适用于Safari。任何有关如何从输入中获取价值的想法(如2011-01-03),并将其转换为日期对象,同时在Safari中正常工作?
This appears to work on all other browsers, but not Safari. Any ideas on how I can take the value from an input (such as 2011-01-03) and turn it into a date object, while having it work properly in Safari?
非常感谢!
推荐答案
JavaScript的日期解析行为是依赖于执行的,ISO8601格式最近被添加到ECMAScript第5版规范中,但这并不支持所有实现。
The date parsing behavior on JavaScript is implementation-dependent, the ISO8601 format was recently added to the ECMAScript 5th Edition Specification, but this is not yet supported by all implementations.
我建议您手动解析,例如: p>
I would recommend you to parse it manually, for example:
function parseDate(input) {
var parts = input.match(/(\d+)/g);
return new Date(parts[0], parts[1]-1, parts[2]);
}
parseDate('2011-01-03'); // Mon Jan 03 2011 00:00:00
上述函数基本上与每个日期部分匹配并使用Date构造函数,以构建一个日期对象,请注意,个月参数需要是基于0的(0 = Jan,1 = Feb,... 11 = Dec)。
Basically the above function matches each date part and uses the Date constructor, to build a date object, note that the months argument needs to be 0-based (0=Jan, 1=Feb,...11=Dec).
这篇关于new Date()在Safari中使用Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!