1

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

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

在此处输入图像描述

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

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

请分享你的想法。

4

3 回答 3

3

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

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

请参阅编辑的 JSFiddle

于 2013-10-10T14:29:16.237 回答
1

来自Date 的 MDN 文档

日期字符串

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

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

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

var d1 = $('#lastAssimilationDate').datepicker("getDate");
于 2013-10-10T14:28:23.513 回答
1

使用内置getDate方法

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

如果您需要向服务器发送 ISO 标准日期,您还可以分配一个altFieldwith an altFormatyyyy-mm-dd

于 2013-10-10T14:31:02.413 回答