var stdate=document.forms["myForm"]["from"].value;
var endate=document.forms["myForm"]["to"].value;
var fromDate = new Date(stdate);
var toDate = new Date(endate);
alert(fromDate);
输入: 来自:2014年3月19日下午03:13:50
输出:(在IE和Firefox中) 无效日期
Chrome浏览器中的: 2014年3月19日星期三15:13:50 GMT-0400(东部夏令时)
我应该使用哪种日期格式以便所有浏览器都支持?或者我该如何处理?
答案 0 :(得分:1)
在大多数情况下,您只需要new Date(
datestring
)
。但是你需要仔细选择格式。
这是一个很好的兼容性表:http://dygraphs.com/date-formats.html
简短版本是:
YYYY/mm/DD
; 从不使用此格式的连字符YYYY/mm/DD HH:MM:SS
;再次,没有连字符YYYY-mm-DDTHH:MM:SSZ
或时区)答案 1 :(得分:0)
如MSDN(IE)中所述 - Date构造函数支持Date.parse支持的格式中的时间戳或Datestring。根据{{3}},这是RFC2822或ISO 8601.一些例子:2011-10-10
或Mon, 25 Dec 1995 13:30:00 GMT
应该是有效的参数。
答案 2 :(得分:0)
我会使用ISO8601 以UTC格式化的字符串作为我的输入,但然后手动
split
将这个字符串分成几部分并将它们输入我的Date
构造函数因此避免了日期解析问题。
实施例
var iso8601 = '2014-03-19T03:13:50.000Z',
parts = iso8601.slice(0, -1).split(/[\-T:]/),
dateObject;
parts[1] -= 1;
dateObject = new Date(Date.UTC.apply(undefined, parts));
console.log(dateObject.toUTCString());
输出
Wed, 19 Mar 2014 03:13:50 GMT上