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 に答える