3

在 PHP 中,我有:

$diff = abs(strtotime(date('m/d/Y h:i:s')) - strtotime($latest));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
echo floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

如何以秒为单位获得差异?我尝试了以下方法:

$diff = abs(strtotime(date('m/d/Y h:i:s')) - strtotime($latest));
4

2 回答 2

4

改用DateTime它会让你的代码更干净。

$latest = new DateTime($latest);
$now = new DateTime();

$diff = $latest->diff($now);
echo $diff->format('%y years %m months %d days');
于 2012-11-21T12:42:39.313 回答
2

时间戳是从 1970 年 1 月 1 日开始的几秒钟。所以它很简单:

<?php
    $now = time();
    $latest = "21-11-2012 14:44";
    $latest = strtotime($latest);
    $diff = ($now - $latest);
    //$diff = Number of seconds difference between now and 21-11-2012 14:44
?>

另请查看DateTime类,它在处理日期时具有更多功能。

于 2012-11-21T12:45:40.523 回答