Разбор Twitter API создан - PullRequest
       13

Разбор Twitter API создан

7 голосов
/ 28 августа 2011

Я хочу проанализировать значение Twitter API created_at (хранится в переменной), которое выглядит следующим образом:

Вс 28 августа 19:31:16 +0000 2011

В это:

19: 31, 28 августа

Но мне нужно, чтобы он учитывал часовой пояс.Любые идеи о том, как сделать это, используя php?


После использования второго варианта, который Джон Флэтнесс предложил я получаю эту ошибку:

Fatal error:  Uncaught exception 'Exception' with message 'DateTime::__construct() [<a href='datetime.--construct'>datetime.--construct</a>]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead' in /misc.php:4
Stack trace:
#0 /misc.php(4): DateTime->__construct('Sun Aug 28 19:3...')
#1 /tabs/home.php(29): format_date(Object(SimpleXMLElement), 'America/Sao_Pau...')
#2 {main}
  thrown in /misc.php on line 4

1 Ответ

21 голосов
/ 28 августа 2011

Если вы установите часовой пояс, в котором вы хотите вывести, с помощью date_default_timezone_set (или установки INI date.timezone), вы можете просто сделать:потенциально необходимо выводить во многих разных часовых поясах, вероятно, проще использовать новый класс DateTime:

$date = new DateTime('Sun Aug 28 19:31:16 +0000 2011');
$date->setTimezone(new DateTimeZone('America/New_York'));
$formatted_date = $date->format('H:i, M d');

Очевидно, что часть 'America/New_York' будет-установка пользователя для своего часового пояса, а не литеральная строка.

...