Intereting Posts
Странное поведение Foreach Как получить расширение изображения с помощью file_get_contents php? В PHP, когда я использую fwrite, я не получаю правильный набор символов Печать результатов немедленно (php) Можно ли безопасно использовать str_replace в кодированной кодировке UTF-8, если в качестве аргументов заданы только строки с кодировкой UTF-8? Использование строкового пути для установки данных вложенных массивов PHP: вызов метода экземпляра через синтаксис ClassName :: method приводит к статическому вызову? счетчик загрузки файлов без базы данных PHP PDO привязывает переменные к строке при ее конкатенации PHP, как извлечь массив ключей и значений без индекса Получить все элементы по имени класса с помощью DOMDocument Тип подсказки для любого объекта В Laravel любой недостаток использования App :: make (''), а не инсталляции конструктора? Подход Php-MySql Security, в то время как INSERT'ing INTO MySql и выборка из MySql на экран Передача файлов PHP

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

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

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

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

благодаря

Solutions Collecting From Web of "PHP: дата больше текущей даты"

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

 $curdate=strtotime('22-02-2011'); $mydate=strtotime('10-10-2011'); if($curdate > $mydate) { echo '<span class="status expired">Expired</span>'; } 

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

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

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

 $curdate = strtotime('22-02-2011'); $mydate = strtotime('10-10-2011'); 
 $row_date = strtotime($the_date); $today = strtotime(date('Ym-d')); if($row_date >= $today){ ----- } 

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

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

 if(strtotime($curdate) > strtotime($mydate)) { ... } 

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

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