在我的MySQL表中,我有一个datatime列(时间以下列格式保存2011-02-15 11:01:14
)。我用PHP提取这些信息并将其打印到用户页面。
$results = mysql_query($cmd,$link);
while ($res_array = mysql_fetch_array($results)) {
$submitted_at = $res_array['datetime'];
print $submitted_at."<br>";
}
但是,我不仅要展示给定的数据时间,还要展示多久以前的数据时间。更详细地说,我需要这样的东西:(67 day 4 hours 47 minutes 7 seconds ago
)。 PHP是否具有一些可以使其更容易的功能。特别值得注意的是月份可能有28天,29天,30天和31天。
作为替代方案,我考虑过在MySQL级别上进行此操作。应该很容易从给定时间提取当前数据的秒数。然后,我可以轻松地将秒数转换为数天,数小时和分钟。但我不知道如何使用mysql_fetch_array
访问此信息。它应该是$res_array['unix_timestamp(now())-unix_timestamp(datatime)']
吗?
答案 0 :(得分:3)
这就是您正在寻找的只需更改格式以满足您的需求。
http://php.net/manual/en/datetime.diff.php
例如:
<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
更改此行:
$ interval-&gt;格式('%R%a days')
遵循以下指南:
http://php.net/manual/en/function.date.php
编辑:此功能是PHP 5.3 +
Edit2:发现旧版本的PHP How to calculate the difference between two dates using PHP?