Как разобрать ZendGData Picasa GPhotoTimestamps в PHP - PullRequest
0 голосов
/ 08 июля 2010

Итак, у меня много проблем с этим маленьким кусочком кода. Например, отметка времени: «1278509422000». Проблема в том, что она представляет собой строку, и мне нужно каким-то образом ее преобразовать. Я знаю о проблеме с миллисекундами и пытался разделить на 1000 и более (intval / floatval), но он просто не станет правильным значением даты и времени.

Zend_Loader::loadClass('Zend_Gdata_Photos');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');

$gp = new Zend_Gdata_Photos(Zend_Gdata_AuthSub::getHttpClient($data->token), "Bla");
try {
    $userFeed = $gp->getUserFeed("default");
    foreach ($userFeed as $userEntry) {
        $album = $userEntry->getGphotoName();
        try {
            $query = $gp->newAlbumQuery();
            $query->setUser("default");
            $query->setAlbumName($album);
            $albumFeed = $gp->getAlbumFeed($query);
            foreach ($albumFeed as $photo) {
                $time = date('Y-m-d H:m:s', $photo->getGphotoTimestamp());
            }
        } catch(Exception $e) {
        }
    }
} catch(Exception $e) {
}

Ответы [ 3 ]

1 голос
/ 12 июля 2010

ОК. Как оказалось, ZendGData очень сильно ориентирован на объект, а функция getGphotoTimestamp () возвращает объект вместо и метку времени. Я не заметил этого из-за непонятного места, которое код занимает в проекте (в задании механика), и того факта, что объект реализует __toString (), который возвращает строковое представление метки времени! Использование floatval (strval (...)) добилось цели!

0 голосов
/ 05 января 2013

Следующий код работал !! ура ...

$date_and_time = date('Y-m-d H:m:s', floatval(strval($entry->getGphotoTimestamp();)/1000));

Happy Coding ..:)

0 голосов
/ 08 июля 2010
$time = date('Y-m-d H:m:s', intval($photo->getGphotoTimestamp())/1000);
...