DateTime и часовые пояса при вызове Facebook PHP SDK? - PullRequest
2 голосов
/ 16 января 2012

Мой часовой пояс Europe/Rome. Я использую Facebook PHP SDK и insights часть API принимает параметр end_time относительно Pacific Daylight Time :

Конец периода, в течение которого метрики были собраны, выражается как время Unix (которое всегда должно быть полночь, Тихоокеанский Дневное время).

Вопрос довольно прост: должен ли я преобразовать $end в PDT (и как) перед вызовом getTimeStamp(), чтобы получить правильную статистику для моего часового пояса?

// Get stats with 1st January 2012 as end_time (relative to my time zone)
$page  = Facebook->getUser()->getPage($id);
$stats = $page->getData('page_views_unique', new DateTime('2012-01-01')); 

public function getData($metric, DateTime $end = null)
{
   $now = new DateTime();
   $end = is_null($end) || $end > $now ? $now : $end; // Default is $now

   // API call
   $args = array('end_time' => $end->getTimestamp());
   $this->sdk->api(sprintf('/%s/insight/%s', $this->id, $metric), 'GET', $args);
}

1 Ответ

0 голосов
/ 16 января 2012

Преобразование времени и даты из одного часового пояса в другой в PHP

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Europe/Rome'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...