Forum Webscript.Ru

Программирование => PHP => Тема начата: kiruxa от 23 Августа 2006, 16:41:07

Название: Изменение формата даты.
Отправлено: kiruxa от 23 Августа 2006, 16:41:07
Доброго дня

Подскажите что можно сделать

у меня в базе даты храняться в формате - 2006-08-23
(год месяц день)
хочу сделать чтоб выводилось August 08, 2006

делаю так
$ord_date=date("F j, Y",$row[tbl_order_date]);
все выдает - December 31, 1969 какую бы дату ни ставил
Ж...

:(
Название: Изменение формата даты.
Отправлено: html_coder от 23 Августа 2006, 18:05:13
[p]date[/p]

Второй параметр функции date должен быть меткой времени в формате UNIX, поэтому и форматирует у тебя не правильно.

Можешь делать средствами функций MySQL для работы с датами
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html (http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html)

А лучше дату в базе хранить в UNIX_TIMESTAMP формате.
Название: Изменение формата даты.
Отправлено: kiruxa от 23 Августа 2006, 18:07:13
Цитировать
html_coder:
А лучше дату в базе хранить в UNIX_TIMESTAMP формате.


в смысле в секундах от 70 года?
Название: Изменение формата даты.
Отправлено: html_coder от 23 Августа 2006, 18:52:02
Да именно в этом смысле!
Название: Изменение формата даты.
Отправлено: kiruxa от 24 Августа 2006, 15:09:58
извиняюсь за детский вопрос,
т.к никогда этого не делал
 если я храню дату  в поле TIMESTAMP(14) - то он хранит ее как YYYYMMDDHHMMSS  и не дает ее загнать как time()

если забивать в INT (11) , будет ли это правильно?

Просто переделываю базу и не хочу боков напороть, чтоб потом опять переделывать
спасибо
Название: Изменение формата даты.
Отправлено: html_coder от 24 Августа 2006, 15:47:02
Да совершенно верно! Тип поля INT (11)!
Название: Изменение формата даты.
Отправлено: kiruxa от 24 Августа 2006, 16:19:13
СПАСИБО  :)

Есть какие нибудь недостатки или проблемы работая с UNIX_TIMESTAMP ???
Например если хранить дату рождения а она до 1970 года?
Название: Изменение формата даты.
Отправлено: html_coder от 24 Августа 2006, 16:58:06
Смотря какая ОС у тебя на сервере, Windows не поддерживает отрицательное время, а в UNIX подобных вроде таких проблем нет, т.е. просто дата до 1970, будет отрицательной, можешь для примера попробовать вывести


echo date(\'d.m.Y\', -1500000000);
Название: Изменение формата даты.
Отправлено: AlieN от 27 Августа 2006, 13:22:04
$ord_date=date("F j, Y",strtotime($row[tbl_order_date]));


должно прокатить