我有2张时间戳:$start_time = 1312346227;
和$end_time = 1312346466;
我试图减去它们以查看$end_time = $end_time - $start_time;
我得到239
。
将此转换为人类可读日期的正确方法是什么?
如果我尝试echo date("h:i:s A",$end_time);
我得到04:03:59
,那应该是00:03:59
任何想法? 感谢
答案 0 :(得分:4)
如果你有PHP 5.3,请使用DateInterval
类。
DateInterval::format()
上的手册页中隐藏的示例:
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a will output the total number of days.
echo $interval->format('%a total days')."\n";
// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');
?>
答案 1 :(得分:3)
由于您的时区,您需要四个小时的时间。请记住,unix时间戳是自1970-01-01 00:00:00 UTC以来的秒数。如果您(或您的服务器)处于UTC + 4 TZ,那么date()
将隐式地将时区转换为您当地的时间。
解决方案?请改用gmdate()
答案 2 :(得分:1)