Автор Тема: как отформатировать дату полученную из SQL запроса?  (Прочитано 5561 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fgodz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.played.ru
Как мне сделать так, чтобы дата, которую я достал из базы, была преобразована к человескому виду? Т.е. как это сделать с текущей датой я знаю - date( "d F Y - h:i" ),
но а если я из базы получаю переменную $row[time], тогда как?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
пойти в документацию по mysql, и прочитать там функции работы с датой.

либо, если хочется исключительно на пхп - написать функцию, которая разбирает строку определенного формата .и выдвает другую строку.

Оффлайн fgodz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.played.ru
я про функцию и спрашивал, потому что встроенная date() преобразовывает в нужный формат только текущее время, а мне надо преобразовать переменную $time.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Цитировать
string date ( string format [, int timestamp])



Возвращает время, отформатированное в соответствии с аргументом format , используя метку времени, заданную аргументом timestamp

http://ru.php.net/date

Оффлайн fgodz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.played.ru
да нет, эта функция осуществляет манипуляции с текущей датой!!!! а мне нужна фиксированная, которую я достаю из базы!

Оффлайн fgodz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.played.ru
Вообщем, поясню на примере:

это время создания новости, хранится в базе.

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


Бред! Как нормально сделать?

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
fgodz
А знаешь почему? Потому что функции [p]date[/p] вторым параметром надо передовать TIMESTAMP!

Чтобы привести поле в формат временной метки юникс, используй функцию MySQL:
UNIX_TIMESTAMP
Мне тормоз послужил толчком...

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Я так понимаю тебе нужно выбрать дату из базы не в таком формате как она лежит в базе.
так юзай функцию mysql  date_format
описание смотри в мане.
FAQ OFF =)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
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

Успехов

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28