【问题标题】:How to get duration in terms of minutes by subtracting a previous time stamp from the present time in PHP?如何通过从 PHP 中的当前时间中减去以前的时间戳来获得以分钟为单位的持续时间?
【发布时间】:2009-12-08 04:52:30
【问题描述】:

如何通过从 PHP 中的当前时间减去前一个时间戳来获得以分钟为单位的持续时间?

时间戳的格式是这样的

2009-12-05 10:35:28

我想计算已经过去了多少分钟。 怎么做?

【问题讨论】:

  • 如何在 MySQL 而不是 PHP 中做到这一点?

标签: php mysql datetime timestamp subtraction


【解决方案1】:

要在 MySQL 中执行此操作,请使用 TIMESTAMPDIFF 函数:

SELECT TIMESTAMPDIFF(MINUTE, date_lastaccess, NOW()) FROM session;

session 是表格,date_lastaccess 是 DATE / DATETIME 字段。

【讨论】:

    【解决方案2】:

    如果你不想添加库,你可以很容易地做到这一点:

    <?php 
    $date1 = "2009-12-05 10:35:28";
    $date2 = "2009-12-07 11:58:12";
    $diff = strtotime($date2) - strtotime($date1);
    $minutes_passed = $diff/60;
    echo $minutes_passed." minutes have passed between ".$date1." and ".$date2; 
    ?>
    

    【讨论】:

    • 如何在 MySQL 而不是 PHP 中做到这一点?
    【解决方案3】:

    在 PHP 中查看一些漂亮的日期库。可能有东西给你。这是一个:http://www.zachleat.com/web/2008/02/10/php-pretty-date/

    【讨论】:

      【解决方案4】:
      strtotime("now") - strtotime("2009-12-05 10:35:28")
      

      这将使您获得秒差。经过的分钟数除以 60。但是,如果您对初始时间戳的时区有任何信息,则需要将“现在”调整为更具可比性的时间

      【讨论】:

      • 你可以使用 time() 代替 strtotime("now")
      【解决方案5】:

      类似的东西

      $second = strtotime('now') - strtotime($your_date);
      $minute = $second / 60;
      

      strtotime 返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数,因此您可以轻松地对其进行操作。如果你不想有 35.5 分钟,你可以使用floor 来四舍五入。最后一句话,两个时间都需要在同一个时区,否则你也要计算时区差异。

      【讨论】:

        【解决方案6】:

        你可以使用

        $timestamp = time();

        $diff = time() - $timestamp

        $minutes = date( i, $diff );

        【讨论】:

        • 那绝对行不通。想一想,它会返回类似 01:11:20 的内容,而您只得到 11 部分。
        【解决方案7】:
        function timeAgoMin($timestamp){
          if(!is_int($timestamp)){
            $timestamp = strtotime($timestamp);
          }
        
          return ((time() - $timestamp) / 60);
        
        }
        

        【讨论】:

        • 如何在 MySQL 中实现?有一个列/字段存储了以前的时间戳。
        • 提取时间戳并通过这个函数解析?
        猜你喜欢
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 2018-05-22
        • 2014-02-23
        相关资源
        最近更新 更多