PHP DateTime相等

时间:2010-09-02 19:07:52

标签: php datetime

如何比较两个DateTime对象是否具有相同的日,月和年? 问题是他们有不同的小时/分钟/秒。

3 个答案:

答案 0 :(得分:2)

使用DateTime对象没有很好的方法。所以你不得不做,不用说,不是那么好的事情。

$nDate1 = clone $date1;
$nDate2 = clone $date2;

//We convert both to UTC to avoid any potential problems.
$utc = new DateTimeZone('UTC');
$nDate1->setTimezone($utc);
$nDate2->setTimezone($utc);

//We get rid of the time, and just keep the date part.
$nDate1->setTime(0, 0, 0);
$nDate2->setTime(0, 0, 0);

if ($nDate1 == $nDate2) {
    //It's the same day
}

这会有效,但就像我说的那样,它并不好。

另一方面,最近的经验告诉我,最好确保两个日期都在同一时区,所以为了以防万一我添加了代码。

答案 1 :(得分:0)

怎么样:

$date1->format('Ymd') == $date2->format('Ymd');

:WQ

答案 2 :(得分:-1)

if(date('dmY', $date1) == date('dmY', $date2))

你可以把它放在一个函数中......

function compare_dates($date1, $date2){
  if(date('dmY', $date1) == date('dmY', $date2))
    return true ;

  return false ;
}

最有用;)