2015-10-15 2 views
0

Мне нужно сравнить даты на PHP, чтобы проверить, истек ли контракт или нет.Использование timestamp в PHP

Сейчас я делаю это:

foreach ($this->array as $row) 
{ 
    if(strtotime($date1) > strtotime($row['end_date'])) 
    { 
    $delay = strtotime($row['end_date']); 
    $expired = "V"; 
    } 
    else { 
    $delay = strtotime($row['end_date']); 
    $expired = "X"; 
    } 

Так что я просто знаю, если контракт истек. Мне нужно написать:

echo "The contract will expire in" . $delay; 

И выход был бы:

The contract will expire in 3 days. 

спасибо за вашу помощь.

+0

Уже ответил: [Как сравнить два объекта DateTime в PHP 5.2.8?] (Http://stackoverflow.com/questions/961074/how-do-i-compare-two-datetime-objects-in- php-5-2-8) – ThinkTank

+0

Я не вижу, как это ответ на мою проблему. –

+1

Вам нужно сравнить 'strtotime ($ row ['end_date'])' to 'time()', что дает вы секунды между ними, затем конвертируете это в дни – Adam

ответ

1
$interval = strtotime($date1) - strtotime($row['end_date']); // ... or replace $date1 

$delayInDays = floor($interval/(60 * 60 * 24)); 

echo "The contract will expire in: " . $delayInDays; 

Если вы заинтересованы в объектно-ориентированном подходе для достижения этой цели, вы посмотрите на DateTime::diff методе можете.

Смежные вопросы