Forum Webscript.Ru
Программирование => PHP => Тема начата: fgodz от 30 Октября 2004, 15:56:58
-
Как мне сделать так, чтобы дата, которую я достал из базы, была преобразована к человескому виду? Т.е. как это сделать с текущей датой я знаю - date( "d F Y - h:i" ),
но а если я из базы получаю переменную $row[time], тогда как?
-
пойти в документацию по mysql, и прочитать там функции работы с датой.
либо, если хочется исключительно на пхп - написать функцию, которая разбирает строку определенного формата .и выдвает другую строку.
-
я про функцию и спрашивал, потому что встроенная date() преобразовывает в нужный формат только текущее время, а мне надо преобразовать переменную $time.
-
string date ( string format [, int timestamp])
Возвращает время, отформатированное в соответствии с аргументом format , используя метку времени, заданную аргументом timestamp
http://ru.php.net/date
-
да нет, эта функция осуществляет манипуляции с текущей датой!!!! а мне нужна фиксированная, которую я достаю из базы!
-
Вообщем, поясню на примере:
это время создания новости, хранится в базе.
2004-10-29 20:45:57
Достаём дату из поля базы и присваем значение перемнной $time.
while ($row = mysql_fetch_assoc($result)) {
$time = $row[time];
}
Конвентируем:
$time = date("d F Y - h:i", $time);
Выводим:
echo $time;
РЕЗУЛЬТАТ ВЫВОДА:
01 January 1970 - 03:33
Бред! Как нормально сделать?
-
fgodz
А знаешь почему? Потому что функции [p]date[/p] вторым параметром надо передовать TIMESTAMP!
Чтобы привести поле в формат временной метки юникс, используй функцию MySQL:
UNIX_TIMESTAMP
-
Я так понимаю тебе нужно выбрать дату из базы не в таком формате как она лежит в базе.
так юзай функцию mysql date_format
описание смотри в мане.
-
fgodz
я тебе сейчас поясню три вещи
Две очень важные, и одну - так себе.
Но без первых двух ты не сможешь написать ни одной программы вообще никогда во веки вечные, аминь.
1. Если тебе говорят пойти и почитать документацию - это значит, что надо срочно пойти и прочесть документацию.
2. Если тебе дают ссылку, например http://ru.php.net/date то надо срочно пойти и прочесть, что там написано. А НЕ СПОРИТЬ, исходя из своих неграмотных представлений.
3. К сожалению, время - вещь очень слабо формализуемая.
Поэтому не может существовать такой переменной, "время".
В переменную мы можем записать только байты в различных комбинациях. Строки или числа.
Строку можно записать в переменную.
Число - можно.
Можно их разнообразным образом комбинировать.
Время в переменную записать нельзя.
можно только придумать соглашение, по которому мы будем записывать в переменную некое число и строку, которое будем интерпретировать, как время.
Я надеюсь, что ты понял - никакого универсального "времени" не существует. В пхп есть свои способы работы со временем, в мускуле - свои.
Поэтому ты сейчас пойдешь по ссылке, которую тебе дали выше, а так же по тем, что даю я, и хорошенько во всем разберешься.
http://dev.mysql.com/doc/mysql/ru/Date_calculations.html
http://dev.mysql.com/doc/mysql/ru/Date_and_time_functions.html
http://dev.mysql.com/doc/mysql/ru/Date_and_time_types.html
Успехов