Javascript 将YYYY/MM/DD转换为有效格式

Javascript 将YYYY/MM/DD转换为有效格式,javascript,date,titanium,Javascript,Date,Titanium,我在Java服务器上有一个格式如下的日期: YYYY/MM/DD 00:00:00.0 这是JavaScript不接受的格式。因此,我这样做: var startDate = '2012-07-27 00:00:00.0'; startDate = startDate.substring(0, 10); 然后返回2012-07-27。(注:我试过有时间也试过没有时间) 然而,我想把它转换成一种日期格式,我可以用来比较两个日期。所以,我准备好了: startDate = new Date(sta

我在Java服务器上有一个格式如下的日期:

YYYY/MM/DD 00:00:00.0

这是JavaScript不接受的格式。因此,我这样做:

var startDate = '2012-07-27 00:00:00.0';
startDate = startDate.substring(0, 10);
然后返回
2012-07-27
。(注:我试过有时间也试过没有时间)

然而,我想把它转换成一种日期格式,我可以用来比较两个日期。所以,我准备好了:

startDate = new Date(startDate);
最后,它会在日志中返回以下内容:
Invalid Date

因此,为了比较日期,例如:

if(currentDate > startDate)
我需要能够得到的格式,我有一个将被接受,这样我就可以比较每个不同的日期


谢谢

字符串格式不兼容,这就是为什么新日期(datestring)不起作用的原因。您可以自己用正则表达式解析字符串,并创建一个新的日期对象,其中包含年、月、日期、分钟和秒的显式值。查看有效的格式

或者在解析字符串后使用此选项 字符串的示例是

gmtDate = new Date(Date.UTC(2012, 07, 27, 0, 0, 0));

您可以使用

如果允许使用javascript库,您可以使用datejs(datejs.com)和Date.parseExact()函数:

Date.parseExact(startDate, "yyyy/MM/dd")
或者,如果您不能或不想为此目的使用库,您可以封装自定义逻辑,以便使用正则表达式将此字符串转换为正确的日期,例如,如ama2所建议的:

Date.parseExact = function(dateString, format) { ... your implementation here } 

如果您的日期使用24小时时间,而不是12小时的上午/下午,并且它们总是采用精确的格式,那么直接字符串比较将产生正确的结果。换句话说,

'2012-07-27 00:00:00.0' > '2012-07-26 00:00:00.0' === true
'2012-07-27 00:00:00.0' > '2012-07-26 23:59:99.9' === true
'2012-07-27 10:00:00.0' > '2012-07-27 12:00:00.0' === false

有时候最简单的方法就在你面前;)

使用
.split()
,我可以在大约30秒内获得年、月、日和时间。我试试你的方法