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

Форум PHP

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

 

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

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

тема: Разница между 2 датами
 
 автор: Mekomelo   (25.03.2008 в 23:01)   письмо автору
 
 

Добрый вечер. Подскажите пожалуйста решение моей задачи.

Есть новостной скрипт. Я сделал проверку на дату, тоесть если даты совпадают то рядом выводится надпись "new!", если не совпадают эта надпись не выводится. Но мне нужно что бы надпись высвечивалась на протяжении 3 дней. Тоесть каким образом найти разницу между 2 датами?
Учет времени не ведётся, только дата (г.м.ч).
В MySQL для сохранения даты я использую тип данных "tinytext"
Основная задача - нахождение разницы между 2 датами. От сегодняшней и 3 дня назад.

   
 
 автор: Саня   (25.03.2008 в 23:07)   письмо автору
 
   для: Mekomelo   (25.03.2008 в 23:01)
 

"г.м.ч" — это что ещё за формат даты?

   
 
 автор: Mekomelo   (25.03.2008 в 23:24)   письмо автору
 
   для: Саня   (25.03.2008 в 23:07)
 

:) это не формат даты, извеняюсь за безответственность

дату я получаю date("Y.m.j") соответственно и формат даты Y.m.j

   
 
 автор: Саня   (25.03.2008 в 23:59)   письмо автору
 
   для: Mekomelo   (25.03.2008 в 23:24)
 

SELECT * FROM `tbl` WHERE DATE(`date`) >= NOW() - INTERVAL 3 DAY;

   
 
 автор: mihdan   (25.03.2008 в 23:52)   письмо автору
 
   для: Mekomelo   (25.03.2008 в 23:01)
 

>В MySQL для сохранения даты я использую тип данных "tinytext"
это не правильно! для хранения даты специально разработано несколько типов данных mysql - date, time, datetime, timestamp... Исправьте и будет вам счастье))) То что вы хотите сделать можно будет сделать средствами mysql, при условии, что вы поправите типы полей

   
 
 автор: coder-decoder   (26.03.2008 в 00:06)   письмо автору
 
   для: Mekomelo   (25.03.2008 в 23:01)
 

Сменить на TIMESTAMP тип поля, делать выборку из базы типа

SELECT *, UNIX_TIMESTAMP(`date`) AS `date` FROM `news_1`  WHERE 1;

И в скрипте уже использовать что-то типа

...
// $date  -- переменная из результата запроса.
$oneDay=60*60*24; // Персчитываем в секунды одни сутки.
if($date+($oneDay*3)>=time()){echo "New";} // Если значение (дата новости + 3 суток) больше, либо равно текущему времени, то выводим New.
...

Так же можно сделать это средствами MySQL, но только при условии если Вы смените тип данных на TIMESTAMP.
P.S. Вариант от Саня хорош.

   
Rambler's Top100
вверх

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