PHP: дата больше текущей - PullRequest
       6

PHP: дата больше текущей

20 голосов
/ 22 февраля 2011

У меня есть этот код:

$curdate = '22-02-2011';

$mydate = '10-10-2011';                     

if($curdate > $mydate)
{
    echo '<span class="status expired">Expired</span>';
}

Это будет эхом с истекшим сроком, НО не должен, потому что $ mydate находится в будущем и поэтому меньше, чем $ curdate, но PHP смотрит просто на первые два числа 22 и 10 вместо всей строки. Как я могу это исправить?

Спасибо

Ответы [ 6 ]

59 голосов
/ 22 февраля 2011

Попробуйте сначала преобразовать их в метки времени, а затем сравнить два преобразованных значения:

$curdate=strtotime('22-02-2011');
$mydate=strtotime('10-10-2011');

if($curdate > $mydate)
{
    echo '<span class="status expired">Expired</span>';
}

Это преобразует их в количество секунд с 1 января 1970 года, поэтому ваше сравнение должно работать.

6 голосов
/ 22 февраля 2011

Проблема в том, что ваши текущие переменные являются строками, а не переменными времени.

Попробуйте это:

$curdate = strtotime('22-02-2011');

$mydate = strtotime('10-10-2011');  
4 голосов
/ 14 ноября 2016
$row_date = strtotime($the_date);
$today = strtotime(date('Y-m-d'));

if($row_date >= $today){
     -----
}
1 голос
/ 22 февраля 2011
if(strtotime($curdate) > strtotime($mydate))
{
...
}
1 голос
/ 22 февраля 2011

Используйте PHP-классы даты / времени, чтобы преобразовать эти строковые представления во что-то, что вы можете напрямую сравнить, используя getTimestamp () для сравнения времени UNIX.

Если вы уверены, что все ваши даты в этом формате,Вы можете нарезать их на строку YYYY-MM-DD, и тогда сравнение строк будет работать правильно.

0 голосов
/ 22 февраля 2011

это ОЧЕНЬ просто

$curdate = '2011-02-22';
$mydate = '2011-10-10';                     

if($curdate > $mydate)
{
    echo '<span class="status expired">Expired</span>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...