У меня есть два источника информации, и эти источники имеют даты в разных форматах.
Источник A Ср, 17 ноя 2010 12:14:10 +0000 (из rss-канала)
Источник B ГГГГ-ММ-ДД ЧЧ: ММ: SS (из mysql datetime)
Запрос: Я хотел бы заказать их по дате, чтобы получить только последние вхождения.
Но, и если это еще более сложно, те, которые хранятся в базе данных, должны учитывать ВРЕМЯ. Поскольку в тот же день можно создать несколько записей.
У меня есть контроль над выходным форматом mysql на выбор. У меня нет контроля над выходом, поступающим из RSS-ленты.
Это не кажется легким достижением, и мне интересно:
Что вы можете предложить здесь?
Update: Я думал о: Рабочий источник A: a) создание массива в течение нескольких месяцев и конкретного месяца б) Извлеките два символа после первой запятой (или три, если посчитать пробел) (день) c) Преобразуйте "нов" в число (используя ранее созданный массив); d) Получить 2010 (не уверен, как); e) Поместите год слева, добавьте место - месяц, а -, поместите день, добавьте 00:00:00
В это время они оба будут равны, и это может помочь... Но, я чувствую себя действительно манекеном в том, чтобы все это делать...: s Разве нет разумного пути?:)
Over - php (zend)/mysql
Большое спасибо, MEM
Если вы можете использовать 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');
date('Ymd H:i:s', strtotime($date))
будет работать так же хорошо, <5.3.r
, но если подумать,strtotime()
вероятно,strtotime()
может с этим справиться, правда