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

Форум PHP

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

 

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

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

тема: Сравнение времени с текущим
 
 автор: nek-v   (24.08.2008 в 12:51)   письмо автору
 
 

Задача такая: в БД имеется запись с некой датой формата dd/mm/YYYY.
Так вот нужно извлечь эту дату и сравнить с текущей. если она совпадает то вывести определенный текст а если она меньше то ничего не выводить. ну а если больше то вывести другой текст.
Как реализовать само сравнение?
С извлечением то я справляюсь...

  Ответить  
 
 автор: Trianon   (24.08.2008 в 13:05)   письмо автору
 
   для: nek-v   (24.08.2008 в 12:51)
 

$edate = "22/08/2008";
$date = implode('-', array_reverse(explode('/',$edate)));
$curdate = date("Y-m-d");

if($date == $curdate)
    echo "==";
else if($date > $curdate)
    echo ">";



Если СУБД - MySQL, то дату в таком формате хранить - неправильно.
Да и в других СУБД, наверняка, имеются возможности вывести её в стандартном формате.

  Ответить  
 
 автор: nek-v   (24.08.2008 в 13:31)   письмо автору
 
   для: Trianon   (24.08.2008 в 13:05)
 

А в правильном формате это в каком?
мне например удобно работать с таким форматом.
Видете ли то что я пишу предназначено для локальной сети
и по просьбам трудящихся пишется...

  Ответить  
 
 автор: Trianon   (24.08.2008 в 14:00)   письмо автору
 
   для: nek-v   (24.08.2008 в 13:31)
 

В котором его предоставляет MySQL: YYYY-MM-DD
Выводить его на страницы можно как угодно.
А хранить в БД нужно так, чтобы по нему можно было легко выполнять поиск и сортировку.

Это, кстати, не прихоть MySQL. Это международный стандарт представления даты-времени.

  Ответить  
 
 автор: mehelson   (24.08.2008 в 14:10)   письмо автору
 
   для: nek-v   (24.08.2008 в 13:31)
 

И сравнивать даты можно прямо в запросе...
А для учета требований трудящихся, дату можно возвращать в удобном для них формате, притом делать это можно непосредственно в запросе функцией DATE_FORMAT
Буквально на днях здесь обсуждался похожий вопрос... о сравнении дат...

  Ответить  
 
 автор: nek-v   (24.08.2008 в 16:13)   письмо автору
 
   для: mehelson   (24.08.2008 в 14:10)
 

а подробнее будте любезны...
желательно в коде
Как вывести в нужном формате из бд?

  Ответить  
 
 автор: BinLaden   (24.08.2008 в 17:00)   письмо автору
 
   для: nek-v   (24.08.2008 в 16:13)
 

SELECT DATE_FORMAT(`date`, '%d/%m/%Y') AS `dt_formatted`;

  Ответить  
 
 автор: nek-v   (24.08.2008 в 17:03)   письмо автору
 
   для: BinLaden   (24.08.2008 в 17:00)
 

а в базу соответственно писать YY-MM-DD?

  Ответить  
 
 автор: BinLaden   (24.08.2008 в 17:13)   письмо автору
 
   для: nek-v   (24.08.2008 в 17:03)
 

Ну да.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 17:28)   письмо автору
 
   для: nek-v   (24.08.2008 в 17:03)
 

А в базу писать YYYY-MM-DD

  Ответить  
 
 автор: BinLaden   (24.08.2008 в 17:29)   письмо автору
 
   для: Trianon   (24.08.2008 в 17:28)
 

По-моему, и YY сойдет.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 17:30)   письмо автору
 
   для: BinLaden   (24.08.2008 в 17:29)
 

сойдет... некоторое время.
Но это не повод так писать.

  Ответить  
Rambler's Top100
вверх

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