在Safari中使用Javascript的新Date()

Dod*_*nas 11 javascript safari jquery date new-operator

我在Javascript中使用新的Date()函数时遇到问题.Safari正在给我一个"无效日期"消息.

我在jsbin上创建了一个简短的例子.

这似乎适用于所有其他浏览器,但不适用于Safari.关于我如何从输入中获取值(如2011-01-03)并将其转换为日期对象的任何想法,同时让它在Safari中正常工作?

非常感谢!

CMS*_*CMS 42

JavaScript上的日期解析行为是依赖实现的,ISO8601格式最近被添加到ECMAScript第5版规范中,但是所有实现都不支持.

我建议你手动解析它,例如:

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
Run Code Online (Sandbox Code Playgroud)

基本上上面的函数匹配每个日期部分并使用Date构造函数来构建日期对象,请注意month参数需要从0开始(0 = Jan,1 = Feb,... 11 = Dec).