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

compare start "Time" is less than the end "Time" in javascript

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

我在两个文本字段中有一个值,该值已经格式化为 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 语句有效,但最后一条语句
有效 返回 (toT>= fromT);不起作用。它总是返回假。我哪里出错了?

我不会担心将这些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。

它将始终打印为假,因为结束时间将始终大于开始时间。您需要更改条件,即返回(toT <= fromT);