2013-02-25 75 views
2

我喜欢这个日期之间的时间差:计算时间的流逝与PHP

$time1 = "2013-02-25 12:00:00"; 
$time2 = "2013-01-01 12:00:00"; 
$tdiff = strtotime($time1) - strtotime($time2); 

我想从$tdiff提取天,小时和分钟。输出应该是这样的:35 days 6 hours 14 minutes

我真的搜索并尝试自己做一些事情。但我无法获得真正的价值。

----编辑---- 我可以找到日期差异。我想提取几天,几小时,从计算时间的分钟......

---- EDIT 2 ---- 这里是我完整的MySQL代码

select (
    select avg(UNIX_TIMESTAMP(tarih)) from table1 
    where action in (6) and who = '".$user."' and dates between '".$date1."' and '".$date."' 
    ) - ( 
    select avg(UNIX_TIMESTAMP(tarih_saat)) from table2 
    where action in (6) and active = 1 and dates between '".$date1."' and '".$date2." 
) 

该查询返回给我真正的价值时间。这个查询对我来说工作正常。结果如下:215922。结果类型为UNIX_TIMESTAPM。所以我想知道这个时间戳有多少天,几小时和几分钟。

+0

可能重复[如何计算两个日期之间的差异使用PHP?](http://stackoverflow.com/questions/676824/how-以计算这两个日期之间的差异使用PHP) – Rikesh 2013-02-25 09:20:29

+1

http://www.php.net/manual/en/datetime.diff.php – Buksy 2013-02-25 09:21:01

+0

这些日期是从数据库最初来的吗? – Cups 2013-02-25 09:21:18

回答

10

PHP有DateInterval类可以像这样使用:

$date1 = new DateTime('2013-02-25 12:00:00'); 
$date2 = new DateTime('2013-01-01 12:00:00'); 

$diff = $date2->diff($date1); // Get DateInterval Object 

echo $diff->format('%d Day and %h hours and %m minutes'); 
-1

你可以使用日期对象来获得更准确。
默认的var类型没有给出时间差异。
通常他们被视为字符串类型时,像你这样assinged

+2

完全多余的答案 – 2013-02-25 09:27:02