以下代码在任何开始时间和结束时间都可以正常工作,但当我给出结束时间为上午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时,它表明开始时间必须小于结束时间。你能告诉我怎么修吗?
提前谢谢。
没有上午12点或下午12点(例如,请参阅此处),这些术语的整个定义(前子午线和后子午线)意味着12点时间本身既不是上午也不是下午。
对于第一种情况,它无疑是正确的。无论是13日上午12点,还是12日至13日午夜,晚上7点都会更大。
第二种情况是,你可以说下午12点代表13日中午,也可以说13日至14日午夜。在前一种情况下,它再次是正确的。后一种情况则不然。
最好的办法可能是看看晚上12点和12点01分(一分钟或不到12小时)之间有什么区别。这将告诉你它是如何解读下午12点的。
这可能会帮助您:
// 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变为12:00。晚上7:00变为19:00。
因此,00:00<12:00<19:00和12:00 AM<12:00 PM<晚上7:00。因此,在这种情况下,您从开始的始终大于从到。
换句话说,它按预期工作:)