开始日期是否小于结束日期?

时间:2014-08-26 04:35:22

标签: javascript jquery

以下代码在任何开始时间和结束时间都正常工作,但是当我给出结束时间上午12点或下午12点时,下面的代码没有给出正确的输出。

var startTime = $("#txtStartTime").val();                 eg. 7:00 PM
var from = new Date("November 13, 2013 " + startTime);
from = from.getTime();                                    eg. 1384349400000
var endTime = $("#txtEndTime").val();                     eg. 12:00 AM or 12:00 PM
var to = new Date("November 13, 2013 " + endTime);
to = to.getTime();                                        eg. 1384281000000
if (from > to || from == to) 
{
     html += "<li>Start-time must be smaller than End-time</li>";

}

例如: 当我给出开始时间7:00 PM和结束时间12:00 AM或12:00 PM时,它显示我的开始时间必须小于结束时间。 你能告诉我怎样才能解决它。

提前致谢。

2 个答案:

答案 0 :(得分:3)

没有上午12点或下午12点(例如,见here),这些术语的整个定义(前后经络)意味着它既不是也不是下午在12点钟时间本身。

对于第一种情况,它无可争辩地是正确的。无论是上午12点是13日中午,还是12日到13日午夜,晚上7点

第二种情况你可以争辩说,12点代表13日中午或13日至14日午夜。在前一种情况下,它再次是正确的。后一种情况并非如此。

最好的选择可能是看到下午12点到12点01分之间有什么不同(一分钟或者只有十二小时)。这将告诉你它是如何在下午12点解释的。

答案 1 :(得分:1)

这可能会帮助你:

// This represents: Thu Nov 13 2013 19:00:00 GMT-0500 (EST)
var date1 = new Date('November 13, 2013 07:00 PM');

// This represents: Thu Nov 13 2013 12:00:00 GMT-0500 (EST)
var date2 = new Date('November 13, 2013 12:00 PM');

// This represents: Thu Nov 13 2013 00:00:00 GMT-0500 (EST)
var date3 = new Date('November 13, 2013 12:00 AM'):

因此:

date1 > date2 > date3;

如果您将数字转换为24小时的同行,这可能会更直观。

如果你这样做了,

  

上午12:00变为00:00。   12:00 PM变为12:00。   晚上7点变为19:00。

因此,00:00&lt; 12:00&lt; 19:00和12:00 AM&lt; 12:00 PM&lt;下午7时00。因此,在这种情况下,来自总是大于

换句话说,它按预期工作:)