Как правильно сравнить две даты?

У меня есть веб-приложение, которое получает дату (dd.mm.YYYY) из базы данных MySQL.

$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,
Мой вопрос сейчас, как я могу это проверить?
Я знаю, что в кодах много ошибок, но я не знаю, как это сделать правильно.

0

Решение

Вы можете использовать strtotime следующим образом:

public static function dateDifferenceInDays($date1, $date2)
{
$str = strtotime($date1) - strtotime($date2);
return floor($str / 3600 / 24);
}
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, вы можете использовать функцию
Степозер в другом ответе:

<?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);
}

?>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector