2

我有 2 个日期,我有一个来检查一个日期是否在另一个日期之前。我知道您必须将日期解析为 JS 日期对象,然后以毫秒为单位进行检查。

但问题是,在我的数据库中,日期时间是这样存储的。

10-mei-2012 09:36

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

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

亲切的问候

史蒂夫

4

4 回答 4

5

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

if (dateB < dateE) ...
于 2012-05-10T08:01:03.423 回答
0

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

于 2012-05-10T08:02:10.710 回答
0

您显示的格式“主要是”ISO-8601 组合日期格式,在设计上与纯文本相当。

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

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

因此,如果您可以对字符串进行排序,您就知道哪个字符串在前。

于 2012-05-10T08:05:28.643 回答
-2

这是在谷歌搜索时发现的将 MySQL DATETIME 转换为 JS 对象的函数

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
  }
});
于 2012-05-10T08:04:44.743 回答