Я использую программный интерфейс Твиттера для возврата списка обновлений статуса и времена, они были созданы. Это возвращает дату создания в следующем формате:
Пятница 09 апреля 12:53:54 +0000 2010
Каков самый простой путь (с PHP или JavaScript) для форматирования этого как 04.09.2010?
strtotime("dateString");
получает дату в родном формате PHP, затем вы можете работать с функцией date()
, чтобы вывести ее так, как вам нужно.
Javascript. Как заметил @Andy, когда дело доходит до IE, будет сука. Так что лучше полагаться на библиотеку, которая делает это последовательно. DateJS кажется хорошей библиотекой.
После добавления библиотеки вы должны проанализировать и отформатировать ее следующим образом:
var date = Date.parse("Fri Apr 09 12:53:54 +0000 2010");
var formatted = date.toString("dd-MM-yyyy");
В PHP вы можете использовать функции даты или класс DateTime, чтобы сделать то же самое (доступно с PHP 5.2.0):
$date = new DateTime("Fri Apr 09 12:53:54 +0000 2010");
echo $date->format("d-m-Y"); // 09-04-2010
JavaScript может разобрать эту дату, если удалить +0000
из строки:
var dStr = "Fri Apr 09 12:53:54 +0000 2010";
dStr = dStr.replace("+0000 ", "") + " UTC";
var d = new Date(dStr);
Chrome - и, я подозреваю, некоторые другие браузеры, не относящиеся к IE - могут разобрать ее с +0000
, присутствующим в строке, но вы можете удалить его для совместимости.
PHP может разобрать дату с помощью strtotime:
strtotime("Fri Apr 09 12:53:54 +0000 2010");
Кроссбраузерный, зависящий от часовых поясов парсинг через JavaScript:
var s = "Fri Apr 09 12:53:54 +0000 2010";
var date = new Date(
s.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,
"$1 $2 $4 $3 UTC"));
Протестировано на IE, Firefox, Safari, Chrome и Opera.