0

我正在使用 Highcharts 库来创建一些漂亮的报告。

我有一组 unix 时间值,我需要将它们转换为该日期和“现在”之间的小时数。

series: [{
    name: 'Fecha/Hora de Acceso',
    // Outputs: 2382374734 (a unix time)
    data: [<?php foreach($tutores as $t) echo $t['lastlogin'] . ','; ?>]
}]

有没有一种简单的方法可以使用 PHP 做到这一点?我正在寻找一个像34. 不是34 Hours

4

3 回答 3

4

使用 PHP time() 函数比较结果除以 3600 得到小时差

http://www.php.net/manual/en/function.time.php

<?php foreach($tutores as $t) {
    echo floor((time() - $t['lastlogin']) / 3600) . ',';
} ?>

编辑:更新为在示例中使用 floor() 。也可以使用 round() 或其他任何东西来根据需要格式化结果

于 2013-04-30T13:50:40.010 回答
1

这应该这样做:

$datetime1 = new DateTime();
$datetime2 = new DateTime('@'.$t['lastlogin']);
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h');
于 2013-04-30T13:48:25.860 回答
0

是的,你可以DateTime::diff(): http: //php.net/datetime.diff

$input = 2382374734;

$old = new DateTime( '@' . $input );
$diff = $old->diff( new DateTime() );

echo sprintf( '%d is %d hours ago', $input, $diff->format( '%h' ) );
于 2013-04-30T13:51:40.340 回答