【问题标题】:Date is not formatting time correctly PHP日期未正确格式化时间 PHP
【发布时间】:2014-03-20 07:19:10
【问题描述】:

您好,我尝试获取两个日期之间的差异并显示它。

我的问题是我得到的时差不是正确的。

这是我的代码:

$time1 = strtotime('2014-03-28 15:20:00');
    $time2 = strtotime('2014-03-28 15:15:00');

    $diffTime = $time1 - $time2;

    echo date('H:i', $diffTime);

我得到的结果是:

02:05

当前时间应该是这样的:

00:05

我猜日期不知何故需要时区或类似的东西,但我不确定。

谢谢。

【问题讨论】:

标签: php


【解决方案1】:
/****************************************
$start_date = new DateTime('23:58:40'); *These two still give 
$end_date = new DateTime('00:00:00');   *a wrong answer
*****************************************/

$start_date = new DateTime('23:58:40');
$end_date = new DateTime('00:11:36');

$dd = date_diff($end_date, $start_date);

//Giving a wrong answer: Hours = 23, Minutes = 47, Seconds = 4 
echo "Hours = $dd->h, Minutes = $dd->i, Seconds = $dd->s";

【讨论】:

    【解决方案2】:

    所以你在这里实际做的是生成两个 UNIX 时间戳(数字),然后将它们相减。然后您将结果数字作为时间戳传递给date()。

    基本上$diffTime 是两次之间的秒数。你可以除以 60 得到分钟,等等,但 PHP 的 DateTime 对象要好得多。

    【讨论】:

      【解决方案3】:

      来自 PHP 文档:

      http://pl1.php.net/strtotime

      注意: 不建议将此函数用于数学运算。最好在 PHP 5.3 及更高版本中使用 DateTime::add() 和 DateTime::sub(),或者在 PHP 5.2 中使用 DateTime::modify()。

      【讨论】:

        【解决方案4】:

        试试这个

        <?php
        $time1 = strtotime('2014-03-28 15:20:00');
        $time2 = strtotime('2014-03-28 15:15:00');
        
        echo round(abs($time1 - $time2) / 60,2). " minute"
        
            ?>
        

        【讨论】:

          【解决方案5】:
          Below is the solution of date time in years,days.hours,minutes and seconds.
          
          $time1 = strtotime('2014-03-28 15:20:00');
          $time2 = strtotime('2014-03-28 15:15:00');
          
          $diffTime = $time1 - $time2;
          
          $y = ($diffTime/(60*60*24*365));
          $d = ($diffTime/(60*60*24))%365;
          $h = ($diffTime/(60*60))%24;
          $m = ($diffTime/60)%60;
          $s = ($diffTime)%60;
          
          
          echo "Minutes - " .$m;
          echo "<br/>";
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-12-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-07
            • 1970-01-01
            相关资源
            最近更新 更多