我正在使用PHP AWS SDK获取我帐户中的所有正在运行的实例。我使用了以下API:
$this->ec2Client = Ec2Client::factory(array(
'profile' => AWS_PROFILE, //contains my credentials
'region' => 'ap-northeast-1',
'version' => 'latest',
));
$result = $this->ec2Client->DescribeInstances(array(
'Filters' => array(
array('Name' => 'instance-state-name', 'Values' => array('running')),
)
));
我可以使用LaunchTime
和AvailabilityZone
信息获取所有正在运行的实例。
它们的值分别为2014-10-31T10:58:35+00:00
和ap-northeast-1a
。
根据这些信息,我想以分钟为单位计算运行时间。这样做的正确方法是什么?
答案 0 :(得分:0)
为每个实例的LaunchTime
提供的值应该是DateTime
的实例。您可以通过获取LaunchTime
与另一个DateTime实例之间的差异来获取实例运行的时间:
$interval = $launchTime->diff(new \DateTime('now'), true);
答案 1 :(得分:0)
我在v3中使用以下内容解决了它:
function interval_in_minutes($start_time){
return round(abs($start_time->getTimestamp() -
(new \DateTime)->getTimestamp()) / 60);
}
$running_time = interval_in_minutes($instance["LaunchTime"]);