jQuery DateTime可以解析这个日期吗?

Can jQuery DateTime parse this date?

本文关键字:日期 DateTime 可以解 jQuery      更新时间:2023-09-26

我有一个日期时间的形式:

var myDate = "2013-06-07T00:00:00.000Z"

我想做

jQuery.datepicker.parseDate( "yy-mm-dd", myDate);

我不关心时间部分。

我得到:

"Extra/unparsed characters found in date: T00:00:00.000Z"

到目前为止我得到的最好的是:

myDate = myDate.replace('T00:00:00.000Z', '');
myDate = jQuery.datepicker.parseDate("yy-mm-dd", myDate).toUTCString();

请帮。

由于它是ISO日期格式,我认为您可以直接调用new Date(myDate),不需要解析我认为

var date = new Date(myDate);

如果你不关心时间部分,为什么不直接

jQuery.datepicker.parseDate( "yy-mm-dd", myDate.split("T")[0]);

对于一般的DateTime处理,请查看moment.js

可以使用split

var myDate = "2013-06-07T00:00:00.000Z";
var n=myDate.split("T");
console.log(n); // Pass the date part only to date picker

通过修改用于描述格式的字符串,您可以让它这样做(假设时间始终为零)

var myDate = "2013-06-07T00:00:00.000Z",
    d = jQuery.datepicker.parseDate("yy-mm-ddT00:00:00.000Z", myDate);
d; // Fri Jun 07 2013 00:00:00 GMT+0100 (GMT Daylight Time)

然而,这将忽略Z表示时区UTC的事实,而是使用本地时区(在我的例子中是BST/GMT+1)。不过你可以快速修复。

d.setMinutes(d.getMinutes() - d.getTimezoneOffset()); // or use UTCMinutes
d; // Thu Jun 07 2013 01:00:00 GMT+0100 (GMT Daylight Time)
// which is now correct in terms of timezone

如果你想要改变你的生活,只要使用http://momentjs.com/…它相当于PHP的Carbon。简单,多语言和跨浏览器。

对于你的问题,它是:

moment("2013-06-07T00:00:00.000Z").format('YY-MM-DD')

这个呢:

jQuery.datepicker.parseDate( "yy-mm-dd", myDate.substr(0, 10) );