在jQuery中执行new Date()时,如何设置正确的格式

How can I set up a correct format while doing new Date() in jQuery?

本文关键字:何设置 设置 格式 jQuery 执行 new Date      更新时间:2023-09-26

我有一个以下格式的日期:

12/11/2015 07:12 PM

在jQuery中我正在做:

var parsedDate2 = new Date(date);
alert(parsedDate2);

这打印出我:

Fri Dec 11 2015 07:12:00 GMT+0100 (Central European Standard Time)

这几乎是正确的,主要是因为在我的示例(12/11/2015 07:12 PM)中,格式是DD/MM而不是MM/DD。然而,jQuery将其视为第一个月。这是一个问题,因为当我选择作为输入时

19/11/2015 07:17 PM  <--- (19th of November)

我得到:

Invalid date

那么,我如何在月前一天设置正确的格式呢?

很难看,但它可以工作,只使用JS:

a = "12/11/2015  07:12 PM";
b = a.split(' ');
c = b[0].split('/');
bad = new Date(a);
alert('bad : '+bad);
good = new Date(c[1]+'/'+c[0]+'/'+c[2]+' '+b[1]+' '+b[2]);
alert('good : '+good);

另一种方法是使用Moment.js解析工具

我认为你应该在JQuery的同时使用更专业、更专注的库,对我来说最好的是Moment.js——它拥有所有和更多的日期时间解析和格式化功能,而且不做其他事情。

此外,还有其他一些替代方案,如date.jsglobalize.js

它的形式为mm/dd/yyyy。尝试11/19/2015 07:17 PM。遗憾的是,jQuery不知道您使用的是哪种格式,所以使用了最糟糕的格式。

不幸的是,Javascript Date系统在添加日期格式时可塑性不强。以下是Mozilla的参考资料。我认为wierdpanda的想法是正确的,编写一个函数,接受您的日期格式,在将其提供给new Date()之前重新格式化它,并返回结果。用这个来代替你有new Date()的地方,一切都会好起来的。