无法解析日期

时间:2013-10-10 14:21:12

标签: javascript jquery date

我正在尝试解析以下格式的日期

dateFormat: "d-M-y" // returns 10-Oct-13

我正在使用 jQuery UI 格式化日期。

以下是我的代码:

var d1 = new Date("10-Oct-13");
alert(d1);  //Invalid in FF and IE, works in chrome

enter image description here

看起来很奇怪,这是我的JSFiddle用于复制FF和IE中的错误。

注意:我不想使用插件,因为它正在运行chrome。

请分享您的想法。

3 个答案:

答案 0 :(得分:3)

您可以将Datepicker的parseDate()方法与格式字符串结合使用来解析日期:

var d1 = $.datepicker.parseDate("d-M-y", $("#lastAssimilationDate").val())
alert(d1); // alerts: Thu Oct 10 2013 00:00:00 GMT+0200

请参阅edited JSFiddle

答案 1 :(得分:1)

来自MDN doc for Date

  

dateString

     

表示日期的字符串值。该字符串应采用parse方法识别的格式(符合IETF的RFC 2822时间戳)。

基本上,您将以不受支持的日期格式传递字符串作为构造函数的dateString参数,因此JavaScript引擎(正确地)声明它是无效日期。 Chrome似乎对它允许的日期格式略微宽容,但这是非标准的。

您可以使用getDate函数获取表示所选日期的Date对象:

var d1 = $('#lastAssimilationDate').datepicker("getDate");

答案 2 :(得分:1)

使用内置getDate method

$('button').click(function(){    
    var d1 = $("#lastAssimilationDate" ).datepicker('getDate');
    console.log(d1);    
});

如果您需要向服务器发送ISO标准日期,您还可以为altField分配altFormat yyyy-mm-dd