Подтвердить что ты не робот

Parsing Twitter API Datestamp

Я использую API twitter для возврата списка обновлений статуса и времени их создания. Он возвращает дату создания в следующем формате:

Пт Апр 09 12:53:54 +0000 2010

Какой самый простой способ (с PHP или Javascript) отформатировать это как 09-04-2010?

4b9b3361

Ответ 1

strtotime("dateString"); получает его в формат даты на родном языке, тогда вы можете работать с функцией date(), чтобы распечатать его, как вы хотите.

Ответ 2

Перекрестный браузер, разбор по времени с помощью 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.

Ответ 3

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");

Ответ 4

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

Ответ 5

Вот формат даты для API Twitter:

Sat Jan 19 20:38:06 +0000 2013
"EEE MMM dd HH:mm:ss Z yyyy"