0

我想检查日期是否早于今天。如果是,那么我想显示日期而不是时间,如果是今天,那么我想显示时间而不是日期。我正在检查的日期是 dd-mm-yyy hh:mm 格式,因此它们不进行比较。

请看我到目前为止的内容:

var created = '25-05-2012 02:15';
var now = new Date();

if (created < now) { 
  created_format = [ format the date to be 25-05-2012 ]
} else {
  created_format = [ format the date to be 02:15 ]
}

在其他示例中看到这些后,我尝试过使用now.dateFormat()now.format()但我收到“不是函数”错误消息。

4

2 回答 2

1

首先获取日期字符串的各个部分:

var created = '25-05-2012 02:15';
var bits = created.split(/[-\s:]/);
var now = new Date(); 

// Test if it's today    
if (bits[0] == now.getDate() &&
    bits[1] == (now.getMonth() + 1) &&
    bits[2] == now.getFullYear() ) {

  // date is today, show time

} else {
  // date isn't today, show date
}

当然还有其他的方法,但我认为上面是最简单的。例如

var otherDate = new Date(bits[2], bits[1] - 1, bits[0]);
now.setHours(0,0,0,0);
if (otherDate < now) {
  // otherDate is before today
} else {
  // otherDate is not before today
}

同样,将字符串转换为日期后,您可以使用getFullYear, getMonth,getDate相互比较,但这与第一种方法基本相同。

于 2012-05-28T10:12:01.447 回答
0

您可以使用getTime方法并获取时间戳。然后您可以将其与当前日期时间戳进行比较。

于 2012-05-28T09:57:29.483 回答