簡體   English   中英

如何正確比較兩個日期?

[英]How to compare two dates correctly?

我有一個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');

我想展示一下從今天$date 5天內是$date 我的問題是現在該如何檢查? 我知道代碼中有很多錯誤,但我不知道如何正確執行此操作。

您可以將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);
  }

?>

您可以這樣使用strtotime:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM