以下代码在任何开始时间和结束时间都正常工作,但是当我给出结束时间上午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时,它显示我的开始时间必须小于结束时间。 你能告诉我怎样才能解决它。
提前致谢。
答案 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。因此,在这种情况下,来自总是大于 。
换句话说,它按预期工作:)