Как изменить формат времени

A
На сайте с 18.10.2007
Offline
125
1168

Не совсем точно сформулировал название темы, но суть вопроса такова: в базе для каждой новости хранится дата её опубликования в таком формате: "2010-12-18 00:00:00", в xml-ке для яндекса нужен формат вида "Tue, 12 Aug 2003 14:15:00 +0400". Как мне определять, какой день недели соответствует конкретной дате? Может есть у кого готовые решения, буду благодарен, если подскажете. Или хотя бы намекнете.

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
kimberlit
На сайте с 13.03.2007
Offline
370
#1
A
На сайте с 18.10.2007
Offline
125
#2

kimberlit, да, читал. Только с помощью этой функции я могу или выводить текущее время, в нужном мне формате (а не время создание записи), или записывать время создания в таблицу. Первое мне не нужно,а второе невозможно, потому что нет доступа к исходному коду. Или я ошибаюсь?

Соответственно передо мной немного другая задача - я беру из ячейки таблицы БД уже записанную туда строку, имеющую известный формат "ГГГГ-ММ-ДД ЧЧ:ММ:СС", и мне нужно каким-то образом определять, какому дню недели соответствует каждая дата. Единственный пока пришедший мне в голову вариант - составить массив вида


'2011-01-01' => 'Mon, 01 Jan 2011'
'2011-01-02' => 'Tue, 02 Jan 2011'
и т.д. для всех дат в ближайшем году=)

Но хотелось бы найти, конечно, более изящный способ.

kimberlit
На сайте с 13.03.2007
Offline
370
#3

Упс. А день недели ищи в первой ссылке. "D" - в таблице. Или "r" посмотри.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4
Только с помощью этой функции я могу или выводить текущее время, в нужном мне формате (а не время создание записи)

У функции date ДВА параметра. date("Формат","Время");

LEOnidUKG добавил 18.12.2010 в 17:34

и мне нужно каким-то образом определять,

Вы реально читать мануалы не умеете. Всё в таблице, всё на русском, всё даже с примерами.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
[Удален]
#5

Функция strtotime() должна помочь в Вашем случае.

А вот так будет выглядеть нужный Вами код:

$old_date = '2010-12-18 00:00:00';
$str_time = strtotime( $old_date );
$new_date = date( 'D, d M Y H:i:s', $str_time );
echo $new_date; //Sat, 18 Dec 2010 00:00:00
A
На сайте с 18.10.2007
Offline
125
#6

w0den, большое человеческое спасибо за столь наглядное разъяснение.

LEOnidUKG, действительно замудоханный какой-то я был в субботу. Сегодня прочитал снова - всё предельно просто и понятно. Все-таки в выходные надо отдыхать.

maldivec
На сайте с 04.11.2008
Offline
160
#7

Чот я не понял... а нафига нам тут strtotime и вообще php, когда все это может сделать мускуль при выборке?

http://www.w3schools.com/sql/func_date_format.asp

"SELECT *, DATE_FORMAT(date_field, '%D, %d %M %Y %H:%i:%s') AS date_for_xml FROM...."

Потом в нужном месте выводим на экран $row['date_for_xml']

:)

orphelin
На сайте с 02.07.2006
Offline
261
#8
maldivec:
DATE_FORMAT

+1 за date_format.

зачем юзать пхп для форматирования даты, когда это может сделать mysql?

A
На сайте с 18.10.2007
Offline
125
#9

maldivec, и Вам благодарствую=) Учту на будущее и такой путь.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий