如何正确比较两个日期?

时间:2015-01-22 10:20:54

标签: php date compare

我有一个Web应用程序,它从MySQL数据库中获取日期(dd.mm.YYYY)。

$date = ($_row["date"]);
$date = date('d.m.Y', strtotime($date));
$date = date('d.m.Y', strtotime("-5 day", strtotime($date)));

我格式化这样的日期。

现在我想将数据库中的日期与今天的日期进行比较。

$today = date('d.m.Y');

我希望在今天的5天内显示$date。 我现在的问题是如何检查这个? 我知道代码中有很多错误,但我不知道如何正确地做到这一点。

2 个答案:

答案 0 :(得分:0)

  

您可以将datetime对象与函数diff()一起使用。分钟。 PHP 5.3.0

非常舒服:

<?php

  // your date from your Database
  $date = new DateTime('26.01.2015');
  // today
  $today = new DateTime;

  // calculate difference
  $diff = $today->diff($date);

  // if difference = 5 days
  if($diff->format('%a') == 5) {
    echo '5 days away';
  }else{
    echo $diff->format('%a'). ' days away.';
  }

?>
  

如果你有一个PHP版本LESS 5.3.0你可以使用的功能   stepozer在另一个答案中:

<?php
  $_row["date"] = '27.01.2015';

  // your date from your Database
  $date = new DateTime( $_row["date"]);
  // today
  $today = new DateTime;

  // if difference = 5 days
  if(dateDifferenceInDays($date->format('d.m.Y'), $today->format('d.m.Y')) == 5){
    echo '5 days';
  }

  // function from stepozer
  function dateDifferenceInDays($date1, $date2)
  {
    $str = strtotime($date1) - strtotime($date2);
    return floor($str / 3600 / 24);
  }

?>

答案 1 :(得分:0)

你可以像这样使用strtotime:

public static function dateDifferenceInDays($date1, $date2)
{
    $str = strtotime($date1) - strtotime($date2);
    return floor($str / 3600 / 24);
}