得到差异返回错误的价值

时间:2017-11-12 12:00:16

标签: php

我已经完成了javascript代码并且运行良好。此脚本获取两个日期之间的差异。现在我想用php语言编写这个脚本,但它返回错误的值。

JSFiddle (js version)

我希望通过php实现这一目标。这是我到目前为止在PHP中所做的:

$NOW = strtotime("now");
$Time = 151048737944;

function dateDiff($date1, $date2)
{

    $diff = abs($date1 - $date2);

    if (floor($diff / 31536000000)) {
        echo floor($diff / 31536000000) . " year";
    } else if (floor($diff / 86400000)) {
        echo floor($diff / 2592000000) . " months";
    } else if (floor($diff / 86400000)) {
        echo floor($diff / 86400000) . " days";
    } else if (floor($diff / 3600000)) {
        echo floor($diff / 3600000) . " hours";
    } else if (floor($diff / 60000)) {
        echo floor($diff / 60000) . " minutes";
    } else {
        echo "now";
    }

}

dateDiff($NOW, $Time);

对于151048737944,它会返回:4 year

2 个答案:

答案 0 :(得分:0)

您确定时间戳$Time是否正确?当与date("y-m-d")一起使用时,它会打印以下日期1992-12-214,你能确定它是正确的吗?

此外,您应该在php中使用date_diff而不是转换此javascript,请参阅此处的手册manual date_diff或使用此stackoverflow帖子来计算差异stackoverflow

请参阅以下针对您使用错误{1}}数据的解决方案的更新代码,请参阅下面的正确数据

since time

答案 1 :(得分:0)

使用DateTime差异功能:

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2015-10-13');
$interval = $datetime1->diff($datetime2);
$yearsdifference = $interval->format('%y'); 

来自docs