Парсинг Twitter API Datestamp - PullRequest
27 голосов
/ 10 апреля 2010

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

Пт. 09 апреля 12:53:54 +0000 2010

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

Ответы [ 5 ]

47 голосов
/ 04 мая 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.

32 голосов
/ 10 апреля 2010

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

6 голосов
/ 10 апреля 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");
4 голосов
/ 07 декабря 2015

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

Sat Jan 19 20:38:06 +0000 2013
"EEE MMM dd HH:mm:ss Z yyyy" 
3 голосов
/ 10 апреля 2010

Javascript. Как заметил @Andy, это будет сукой, когда дело доходит до IE. Поэтому лучше полагаться на библиотеку, которая делает это последовательно. DateJS кажется хорошей библиотекой.

После добавления библиотеки вы должны проанализировать и отформатировать ее как:

var date = Date.parse("Fri Apr 09 12:53:54 +0000 2010");
var formatted = date.toString("dd-MM-yyyy");

В PHP вы можете использовать функции date или класс 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...