开始日期小于结束日期

start date is less than end date?

本文关键字:日期 结束 小于 开始      更新时间:2023-09-26

以下代码在任何开始时间和结束时间都可以正常工作,但当我给出结束时间为上午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。因此,在这种情况下,您从开始的始终大于从

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