【问题标题】:How can I get number of days, hours, minutes and second from now to a date-time given in the MySQL database?如何获取从现在到 MySQL 数据库中给定的日期时间的天数、小时数、分钟数和秒数?
【发布时间】:2011-07-19 07:59:44
【问题描述】:

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

【问题讨论】:

    标签: php mysql datetime time


    【解决方案1】:

    这就是您要查找的内容,只需更改格式以满足您的需要。

    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->format('%R%a 天')

    遵循此处的指南:

    http://php.net/manual/en/function.date.php

    编辑:这个函数是 PHP 5.3+

    Edit2 : 为旧版本的 PHP 找到了这个 How to calculate the difference between two dates using PHP?

    【讨论】:

    • 哇,不知道那个功能哈哈。我总是使用一些除法数学和数组来获得相对时间输出:P
    • 我得到:调用未定义的函数 date_diff()
    • 对我和 MySQL 来说也是如此,直到我发现了几乎荒谬的日期时间函数数组。自然地,我查找了 php datetime 的东西和 BOOM,大吃一惊。
    • PHP 版本问题?你运行的是哪个版本?
    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2012-12-03
    • 2015-06-16
    • 1970-01-01
    • 2019-05-28
    相关资源
    最近更新 更多