如何从现在到MySQL数据库中给出的日期时间获得天数,小时数,分钟数和秒数?

时间:2011-07-19 07:59:45

标签: php mysql datetime time

在我的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)']吗?

1 个答案:

答案 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?