我有这样的SQL Datestamp:2012-02-20 21:14:54

如何在PHP中打印出相对日期和时间?

例如

发生:几秒钟前
发生时间:4分钟前
发生时间:4小时前
发生时间:2012年1月8日,星期一

下班后,我只想打印出实际日期

最佳答案

在Google http://www.mdj.us/web-development/php-programming/another-variation-on-the-time-ago-php-function-use-mysqls-datetime-field-type两秒钟后发现此问题

通常,您选择一个时间单位(例如秒),测试时间差是否小于该单位的最大值(60s),如果是,则打印“ $ timeDifference $ unit”。如果不是,则将差值除以最大值单位,然后从下一个更高的单位(分钟)开始。

例:

$timeDif = 60*60*5 + 45; // == 5 hours 45 seconds

// 60 seconds in a minute
if ($timeDif < 60) // false
    return "$timeDif second(s) ago";

// convert seconds to minutes
$timeDif = floor($timeDif / 60); // == 300 = 5 * 60

// 60 minutes in an hour
if ($timeDif < 60) // false
    return "$timeDif minute(s) ago";

// convert minutes to hours
$timeDif = floor($timeDif / 60); // == 5

// 24 hours in a day
if ($timeDif < 24)
    return "$timeDif hour(s) ago";

// ...

09-20 11:24