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

Форум MySQL

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

 

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

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

тема: Преобразовать дату в "Сегодня", "Вчера" или "N дней назад"
 
 автор: Вар   (25.07.2007 в 12:23)   письмо автору
 
 

В таблице есть поле дата где храниться дата добавления товара. Мне нужно вывести эту дату в виде слов "Сегодня", "Вчера", "n дней назад". Как такое сделать?

Делаю так, но это очень неудобно и не то что нужно.
if ($date_m==date('m.d.Y')) $date_m='сегодня';
elseif ($date_m==date('m.d.Y')-'00.01.00') $date_m='вчера';
elseif($date_m==date('m.d.Y')-'00.02.00') $date_m='2 дня назад'; и тд

   
 
 автор: cheops   (25.07.2007 в 12:36)   письмо автору
 
   для: Вар   (25.07.2007 в 12:23)
 

Дата в таблице в каком формате хранится? Используется строка или календарный тип вроде DATE или DATETIME?

   
 
 автор: Вар   (25.07.2007 в 15:47)   письмо автору
 
   для: cheops   (25.07.2007 в 12:36)
 

используется datetime

   
 
 автор: Trianon   (25.07.2007 в 15:49)   письмо автору
 
   для: Вар   (25.07.2007 в 15:47)
 

в datetime Вы всяко не можете хранить данные в формате 'm.d.Y'

   
 
 автор: Вар   (25.07.2007 в 15:52)   письмо автору
 
   для: Trianon   (25.07.2007 в 15:49)
 

Это разве влияет на метод. Помогите именно с функцией.
Дату а перевожу так:
$date_m=date('m.d.Y', strtotime($arr['date]));

   
 
 автор: Trianon   (25.07.2007 в 16:59)   письмо автору
 
   для: Вар   (25.07.2007 в 15:52)
 


$days = intval((time() - $date) / (24*3600));
$rr = array('сегодня','вчера','позавчера');
$strdate = ($days > 2) ? date("d.m.Y", $date) : $rr[$days];


Или Вы хотите SQL-код?

PS. На самом деле разницу стоит скорректировать с учетом времени суток...


$days = intval((mktime(23,59,59,date('m'), date('d'), date('Y')) - $date) / (24*3600));
$rr = array('сегодня','вчера','позавчера');
$strdate = ($days > 2) ? date("d.m.Y", $date) : $rr[$days];

   
 
 автор: Вар   (25.07.2007 в 17:30)   письмо автору
 
   для: Trianon   (25.07.2007 в 16:59)
 

нет SQL не нужен, и такой подойдет, только что то он выдает просто дату 01.01.1970

   
 
 автор: Вар   (25.07.2007 в 17:47)   письмо автору
 
   для: Trianon   (25.07.2007 в 16:59)
 

Ладно я разобрался, СПАСИБО ОГРОМНЕ!

   
Rambler's Top100
вверх

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