php时间戳之间的区别?还是mysql时间戳?

时间:2010-08-25 18:56:58

标签: php mysql

我使用php在mysql表上记录了两个时间戳。如何使用php或mysql以小时为单位计算这些时间戳之间的差异?

3 个答案:

答案 0 :(得分:0)

在php中你可以使用常规数学,然后使用date()函数创建以小时为单位的日期时间

答案 1 :(得分:0)

答案 2 :(得分:0)

如果你实际的小时数(3600秒),只需减去时间戳并除以3600:

$hours = ($timestamp2 - $timestamp1)/3600;
$hours = floor($hours); // to round down.
SQL中的

或类似内容。

如果你想要“逻辑时间”:

$tz = new DateTimezone("Europe/Lisbon"); //replace with actual timezone
$d2 = new DateTime("@$timestamp2");
$d2->setTimezone($tz); 
$d1 = new DateTime("@$timestamp1");
$d1->setTimezone($tz);
$hours = $d2->diff($d1)->h;

这在两次之间存在DST变化的情况下有所不同。例如:

<?php
$ltz = new DateTimezone("Europe/Lisbon");
date_default_timezone_set("Europe/Lisbon");
$ts2 = strtotime("31-Oct-2010 02:30:00");
$ts1 = strtotime("31-Oct-2010 00:30:00");

$d2 = new DateTime("@$ts2");
$d2->setTimezone($ltz);
$d1 = new DateTime("@$ts1");
$d1->setTimezone($ltz);

var_dump(floor($ts2-$ts1)/3600);
var_dump($d2->diff($d1)->h);

给出:

float(3)
int(2)