Forum Webscript.Ru
Программирование => PHP => Тема начата: 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 какую бы дату ни ставил
Ж...
:(
-
[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 формате.
-
html_coder:
А лучше дату в базе хранить в UNIX_TIMESTAMP формате.
в смысле в секундах от 70 года?
-
Да именно в этом смысле!
-
извиняюсь за детский вопрос,
т.к никогда этого не делал
если я храню дату в поле TIMESTAMP(14) - то он хранит ее как YYYYMMDDHHMMSS и не дает ее загнать как time()
если забивать в INT (11) , будет ли это правильно?
Просто переделываю базу и не хочу боков напороть, чтоб потом опять переделывать
спасибо
-
Да совершенно верно! Тип поля INT (11)!
-
СПАСИБО :)
Есть какие нибудь недостатки или проблемы работая с UNIX_TIMESTAMP ???
Например если хранить дату рождения а она до 1970 года?
-
Смотря какая ОС у тебя на сервере, Windows не поддерживает отрицательное время, а в UNIX подобных вроде таких проблем нет, т.е. просто дата до 1970, будет отрицательной, можешь для примера попробовать вывести
echo date(\'d.m.Y\', -1500000000);
-
$ord_date=date("F j, Y",strtotime($row[tbl_order_date]));
должно прокатить