如何在javascript中检查一个日期是否在另一个日期之前

时间:2012-05-10 07:58:58

标签: javascript validation datetime

我有两个约会,我要检查一个约会是否在另一个约会之前。 我知道你必须将日期解析为JS日期对象,然后用毫秒来检查它。

但问题是,在我的数据库中,dateTimes是这样存储的。

10-mei-2012 09:36

所以我的问题是如何比较其中两个日期并检查日期1是否在date2之前?哦,为了记录,我也使用jquery来获取这些值。

var dateB = $('#DATUM_BEGIN').val();
var dateE = $('#DATUM_EINDE').val();

亲切的问候

燕姿

4 个答案:

答案 0 :(得分:5)

在该格式中,您可以按原样比较字符串,这是安全的。所以只需使用

if (dateB < dateE) ...

答案 1 :(得分:0)

http://www.datejs.com/可能会有所帮助。它是一个比较日期的jquery插件。

答案 2 :(得分:0)

您显示的格式是“大多数”ISO-8601组合日期格式,其设计可与纯文本相媲美。

你所拥有的和纯ISO-8601之间的唯一区别是空格字符需要有一个'T'。

http://en.wikipedia.org/wiki/ISO_8601

所以,如果你可以对字符串进行排序,你知道哪一个字符串首先出现。

答案 3 :(得分:-2)

这是一个将MySQL DATETIME转换为JS对象的函数found while googling

function mysqlTimeStampToDate(timestamp) {
  var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
  var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
  return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
}

以下是如何使用它的一个示例:

$(function(){
  var dateB = mysqlTimeStampToDate($('#DATUM_BEGIN').val());
  var dateE = mysqlTimeStampToDate($('#DATUM_EINDE').val());

  if(dateB < dateE){
    // dateB is older
  } else {
    // dateB is newer
  }
});