在javascript中比较时间hh:mm格式

在javascript中比较时间hh:mm格式,javascript,Javascript,我将字符串更改为24小时格式,但为什么《泰晤士报》不比较我做错了什么 function getTwentyFourHourTime(amPmString) { var d = new Date("1/1/2013 " + amPmString); return d.getHours() + ':' + d.getMinutes(); } var inputStart = "6:00 AM"; var inputEnd = "10:00 PM"; var startDay

我将字符串更改为24小时格式,但为什么《泰晤士报》不比较我做错了什么

function getTwentyFourHourTime(amPmString) { 
    var d = new Date("1/1/2013 " + amPmString); 
    return d.getHours() + ':' + d.getMinutes(); 
}

var inputStart = "6:00 AM";
var inputEnd = "10:00 PM";

var startDay = getTwentyFourHourTime(inputStart); 
var endDay = getTwentyFourHourTime(inputEnd); 


if(startDay < endDay){
alert("works!");
}
函数getTwentyFourHourTime(ampString){
var d=新日期(“2013年1月1日”+amPmString);
返回d.getHours()+':'+d.getMinutes();
}
var inputStart=“上午6:00”;
var inputEnd=“晚上10:00”;
var startDay=getTwentyFourHourTime(inputStart);
var endDay=getwentyfourhourtime(输入);
如果(开始日<结束日){
警惕(“工作!”);
}

发生这种情况是因为您正在比较字符串。当您执行
时,返回d.getHours()+':'+d.getMinutes()
它返回一个字符串,
“6:0”
大于
“22:0”
。如果只返回
d
,代码将正常工作

function getTwentyFourHourTime(amPmString) { 
    var d = new Date("1/1/2013 " + amPmString); 
    return d; 
}

var inputStart = "6:00 AM";
var inputEnd = "10:00 PM";

var startDay = getTwentyFourHourTime(inputStart); 
var endDay = getTwentyFourHourTime(inputEnd); 


if(startDay < endDay){
alert("works!");
}
函数getTwentyFourHourTime(ampString){
var d=新日期(“2013年1月1日”+amPmString);
返回d;
}
var inputStart=“上午6:00”;
var inputEnd=“晚上10:00”;
var startDay=getTwentyFourHourTime(inputStart);
var endDay=getwentyfourhourtime(输入);
如果(开始日<结束日){
警惕(“工作!”);
}
检查我的


希望对您有所帮助。

谢谢!这解决了问题。