0

我正在使用 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:00ap-northeast-1a

根据这些信息,我想以分钟为单位计算运行时间。这样做的正确方法是什么?

4

2 回答 2

0

为每个实例提供的值LaunchTime应该是 的实例DateTimeLaunchTime您可以通过获取与另一个 DateTime 实例之间的差异来了解一个实例已经运行了多长时间:

$interval = $launchTime->diff(new \DateTime('now'), true);
于 2016-04-05T05:36:10.947 回答
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"]);
于 2016-04-06T02:33:02.973 回答