2010-11-21 2 views
0

У меня есть два источника информации, и эти источники имеют даты в разных форматах.Униформа форматов даты - как?

Источник А Ср, 17 ноября 2010 12:14:10 +0000 (от фид RSS)

Источник B YYYY-MM-DD HH: MM: SS (from mysql datetime)

Просьба: Я хотел бы заказать их по дате, чтобы получить только последние вхождения.

Но, если это еще сложнее, те, которые хранятся в базе данных, должны учитывать ВРЕМЯ. Потому что в тот же день можно создать несколько записей.

У меня есть контроль над выходным форматом mysql на выбор. У меня нет контроля над выходом, поступающим из RSS-ленты.

Это, кажется, не будет легким достижением, и я задаюсь вопросом:

Что бы вы могли предложить здесь?

Update: Я думал о: Рабочем источнике А как это: а) создание массива в течение нескольких месяцев и конкретный месяц номер б) Retrive два символа после первой запятой (или три, если мы считаем пробел) (день) c) Преобразование «Ноя» в число (с использованием ранее созданного массива); d) Извлеките 2010 (не уверен, как); e) Поместите год слева, добавьте место - месяц, а -, добавьте день, добавьте 00:00:00

В это время они оба будут равны, и это может помочь .. Но, я чувствую себя действительно манекеном в том, чтобы делать все это ...: s Нет ли разумного пути? :)

Over - PHP (Zend)/MySQL

Спасибо большое, MEM

ответ

3

Если вы можете использовать PHP 5.3, я хотел бы использовать DateTime::createFromFormat() для нормализации форматов дат в общий формат.

Для MySql даты:

$date = DateTime::createFromFormat('Y-m-d H:i:s', '2010-11-17'); 
echo $date->format('Y-m-d H:i:s'); 

Для формата RFC 2822, это должны работы (не проверял еще):

$date = DateTime::createFromFormat('r', 'Wed, 17 Nov 2010 12:14:10 +0000'); 
echo $date->format('Y-m-d H:i:s'); 
+1

Я думаю, что 'дата ('Ymd H: я: s ', strtotime ($ date)) 'будет работать так же хорошо, <5.3. – deceze

+1

@deceze Я не был полностью уверен в формате 'r', но подумал об этом,' strtotime() 'тоже, возможно, справится с этим, true –

+0

Спасибо. Я не знал, что у нас есть такая форма ISO. Я дам ему попробовать и опубликовать результаты. Большое спасибо. :) (@all ps- вы можете увидеть мое обновление для развлечения: s); – MEM

 Смежные вопросы

  • Нет связанных вопросов^_^