在我的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)']
的东西吗?
这将是您想要的,只需更改格式以满足您的需求。
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->格式("%R%a天"(
以下指南如下:
http://php.net/manual/en/function.date.php
编辑:这个函数是PHP 5.3+
第2版:为旧版本的PHP找到了这个如何使用PHP计算两个日期之间的差异?