Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сравнить две даты
 
 автор: bartik   (30.11.2006 в 15:34)   письмо автору
 
 

У меня есть 2 даты, 1 из базы, 2 текущая,


<?
$today 
date("d-m-Y");
$today2 = ("01-12-2006"); 
 
?>


Как их верно сравнить? хотелось бы пример..

   
 
 автор: Trianon   (30.11.2006 в 15:37)   письмо автору
 
   для: bartik   (30.11.2006 в 15:34)
 

Дата из базы будет записана в формате год-месяц-день. Именно в нем их и надо сравнивать.

   
 
 автор: bartik   (01.12.2006 в 01:11)   письмо автору
 
   для: Trianon   (30.11.2006 в 15:37)
 

дело в том что у меня формат таблицы дат, не date, а varchar) Так как правильно сравнить?

   
 
 автор: 2tl   (01.12.2006 в 01:51)
 
   для: bartik   (01.12.2006 в 01:11)
 

приводи каждую дату к timestamp и сравнивай как два обычных числа

   
 
 автор: Trianon   (01.12.2006 в 09:33)   письмо автору
 
   для: bartik   (01.12.2006 в 01:11)
 

>дело в том что у меня формат таблицы дат, не date, а varchar) Так как правильно сравнить?
преобразовывать либо в линейный временной тип, либо в строковый ГГГГ-ММ-ДД. И сравнивать результат преобразования.
А лучше сразу деражть дату/время в поле соответствующего типа.

2tl: далеко не каждую дату можно преобразовать к timestamp без потери данных.

   
 
 автор: dennger   (01.12.2006 в 13:18)
 
   для: Trianon   (01.12.2006 в 09:33)
 


function dt($dt){
return str_replace("-","",$dt);
}

$datetimeinbase= (int)dt(substr($line['DateTimeT'],0,10));
$datetimetoday=(int)date("Ymd");


и сравнива как целое, без (int) как строку

   
 
 автор: dennger   (01.12.2006 в 13:21)
 
   для: dennger   (01.12.2006 в 13:18)
 

$line['DateTimeT'] дата в формате гггг-мм-дд

   
 
 автор: bartik   (01.12.2006 в 16:36)   письмо автору
 
   для: dennger   (01.12.2006 в 13:21)
 

всё разобрался, вся моя ошибка была в том что дата у меня была вида d-m-y , а для сравнения надо использовать y-m-d, чтобы не переделывать все значения сделал так:


<?
$today 
date("Ymd");

$mass =explode("-"$s[endtime]);
$datka $mass[2].$mass[1].$mass[0]; // 2006-12-01 а было 01-12-2006
if($today <= $datka){ echo "Всё в норме"; }
?>

где $s[endtime] - вывод из базы , типа 01-12-2006

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования