如何在php中将mysql日期更改为“Ago”

如何在php中将mysql日期更改为“Ago”,php,mysql,Php,Mysql,所以,对于我的mysql数据库,我有以下日期格式:2016-01-21 23:15:00 对于它的输出php,我试图将其格式更改为ago 我试图实现这一点 以下是我获取日期值的方式: $d .= $row->date. ','; 我对如何将其转换为ago格式几乎一无所知 有什么建议吗 谢谢 要计算从一个时间到另一个时间所经过的时间,您应该将它们转换为时间戳。然后,当你从较新的时间中减去较旧的时间时,你将得到以秒为单位的时间。你可以看到下面的例子 function ago( $time )

所以,对于我的mysql数据库,我有以下日期格式:2016-01-21 23:15:00

对于它的输出php,我试图将其格式更改为ago

我试图实现这一点

以下是我获取日期值的方式:

$d .= $row->date. ',';
我对如何将其转换为ago格式几乎一无所知

有什么建议吗


谢谢

要计算从一个时间到另一个时间所经过的时间,您应该将它们转换为时间戳。然后,当你从较新的时间中减去较旧的时间时,你将得到以秒为单位的时间。你可以看到下面的例子

function ago( $time ){
    /* as found on css-tricks */
}

$date='2016-01-21 23:15:00';
$timestamp=strtotime($date);
echo ago( $timestamp );
<?PHP
    header("Content-type: text/plain; charset=utf-8");
    $oldTimeStamp = strtotime("2016-01-21 23:15:00");
    $nowTimeStamp = time();

    echo $oldTimeStamp ."\n";
    echo $nowTimeStamp ."\n";
    echo ($nowTimeStamp - $oldTimeStamp)." seconds passed";
?>
如果你试图为自己的处境树立榜样

<?PHP
    $mysqlTime = strtotime($row->date);
    $nowTimeStamp = time();

    //We use abs because we do not know the $row->date is in future or not ?
    echo abs($nowTimeStamp - $mysqlTime)." seconds ".($nowTimeStamp < $mysqlTime ? " to time of record" : " passed")."...";
?>

你应该根据你的格式计算结果,我指的是分钟、秒、天等。希望这对你有所帮助。

要计算每次经过的时间,你应该将它们转换为时间戳。然后,当你从较新的时间中减去较旧的时间时,你将得到以秒为单位的时间。你可以看到下面的例子

<?PHP
    header("Content-type: text/plain; charset=utf-8");
    $oldTimeStamp = strtotime("2016-01-21 23:15:00");
    $nowTimeStamp = time();

    echo $oldTimeStamp ."\n";
    echo $nowTimeStamp ."\n";
    echo ($nowTimeStamp - $oldTimeStamp)." seconds passed";
?>
如果你试图为自己的处境树立榜样

<?PHP
    $mysqlTime = strtotime($row->date);
    $nowTimeStamp = time();

    //We use abs because we do not know the $row->date is in future or not ?
    echo abs($nowTimeStamp - $mysqlTime)." seconds ".($nowTimeStamp < $mysqlTime ? " to time of record" : " passed")."...";
?>

您应该根据您的格式计算结果,我的意思是分钟、秒、天等。希望这有帮助。

我想您没有将变量传递给函数。 将函数粘贴到已执行代码的某个位置,例如,您可以通过composer将其作为帮助文件自动加载

$d .= ago($row->date). ',';
这样你应该得到你所需要的


无论如何,对于这类实现,我总是更喜欢这样的东西,它有一个名为diffForHumans的方法,可以完全满足您的要求。

我想您没有将变量传递给函数。 将函数粘贴到已执行代码的某个位置,例如,您可以通过composer将其作为帮助文件自动加载

$d .= ago($row->date). ',';
这样你应该得到你所需要的


无论如何,对于这种类型的实现,我总是喜欢这样的东西,它有一个名为diffForHumans的方法,可以完全满足您的要求。

通过您给出的链接提到的函数有一个参数可以传递给函数,即时间,因此在传递给ago之前,将日期转换为时间戳值谢谢。我将给它一个tryth通过您提供的链接提到的函数有一个参数,您可以传递给该函数,即time,因此在传递到ago函数之前,请将日期转换为时间戳值。谢谢。我要试一试