比较开始“时间”小于javascript中的结束“时间”

时间:2013-09-26 09:04:15

标签: javascript

我在两个文本字段中有一个值已经格式化为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。我哪里错了?

2 个答案:

答案 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);