new Date()在Safari中使用Javascript [英] new Date() using Javascript in Safari

查看:127
本文介绍了new Date()在Safari中使用Javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆