我在两个文本字段中有一个值已经格式化为hh:mm,如何比较这两个字段的值?
我正在尝试以下代码:
function check_ToFromTime(toTime) {
if (getControl('txtStartTimeFrom').value == '00:00' && getControl(toTime).value == '00:00') { return true; }
var fromDate = new Date(getControl('txtStartTimeFrom').value);
var toDate = new Date(getControl('txtEndTimeTo').value);
var fromT = fromDate.getTime();
var toT = toDate.getTime();
return (toT >= fromT);
}
第一行中的if语句有效,但最后一个语句为 return(toT> = fromT); 不起作用。它总是返回false。我哪里错了?
答案 0 :(得分:0)
我不担心将这些String
对象转换为Date
个对象。只需拆分字符串并进行比较:
var fromDate = "04:05";
var toDate = "04:04";
var fromTokens = fromDate.split(":");
var toTokens = toDate.split(":");
alert(fromTokens[0] < toTokens[0] || (fromTokens[0] == toTokens[0] && fromTokens[1] < toTokens[1]));
您可以将此功能放在一个很好的功能中以便重复使用:
function isAfter(fromDate, toDate){
var fromTokens = fromDate.split(":");
var toTokens = toDate.split(":");
return (fromTokens[0] < toTokens[0] || (fromTokens[0] == toTokens[0] && fromTokens[1] < toTokens[1]));
}
//Tests
alert(isAfter("04:04", "05:05"));
alert(isAfter("06:04", "05:05"));
alert(isAfter("05:05", "05:05"));
JS小提琴: http://jsfiddle.net/X5v5F/
我不打算沿着这条路走下去,因为我认为拆分字符串就足够了,但是如果你修复了约会,我建议你使用Moment.js。
答案 1 :(得分:0)
它将始终打印为false,因为结束时间总是大于开始时间.U需要更改条件,即返回(toT&lt; = fromT);