Разбор PHP инстанса Amazon EC2 'launchTime' - PullRequest
2 голосов
/ 16 ноября 2011

Когда вы описываете свои экземпляры EC2, вы получаете узел XML: -

[launchTime] => 2011-10-14T09:22:37.000Z

Я бы хотел использовать эту команду с PHP, чтобы измерить количество секунд, в течение которых экземпляр был включен, и предпринять действия.

Мне кажется, что есть несколько способов это исправить, включая взрывы, поиск строк и регулярное выражение. Но каков лучший способ?

Ответы [ 2 ]

4 голосов
/ 16 ноября 2011
$ts = DateTime::CreateFromFormat('Y-m-d\TH:i:s?????', '2011-10-14T09:22:37.000Z');
echo $ts->diff(new DateTime())->format('U');

при условии, что вы на PHP 5.3 +

3 голосов
/ 16 ноября 2011

ЗАКЛЮЧИТЕЛЬНЫЙ ОТВЕТ:

Хорошо, после проверки этой темы , я выбрал этот подход как единственный, который, кажется, возвращает точную меру:

$dt = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $date);
$now = new DateTime();
echo ($now->getTimestamp() - $dt->getTimestamp())."\n";

ПОПЫТКИ:

В PHP 5.3 с использованием классов (без формата 'U'):

$dt = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $arr['launchTime']);
echo (new DateTime())->format('U');

В PHP 5.3 с использованием процедурных вызовов (также работает как окончательное решение):

$dt = date_create_from_format('Y-m-d\TH:i:s.u\Z', $arr['launchTime']);
$now = date_create();
echo ($now->getTimestamp() - $dt->getTimestamp());

В любой версии, используя strtotime (верните неверное время):

date_default_timezone_set('UTC');
echo time() - strtotime($arr['launchTime']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...