【问题标题】:How to calculate in PHP the difference in seconds between 2 times (not datetimes) just times. Laravel // PHP // Carbon如何在 PHP 中计算 2 次(不是日期时间)之间的秒差。 Laravel // PHP // 碳
【发布时间】:2020-04-15 18:53:16
【问题描述】:

这里有一个例子来说明问题。下面的两个例子都给出了错误的区别:

// gives 86398 while the correct is 2sec
$diff_in_sec = strtotime('23:59:59') - strtotime('00:00:01'); 

// again gives 86398 while the correct is 2sec.
$diff_in_sec = Carbon::parse('00:00:01')->diffInSeconds(Carbon::parse('23:59:59')); 

我想要的是 23:59:5900:00:01 相比返回 2 秒的差异,并且 00:00:0123:59:59 相比。

【问题讨论】:

  • 只是为了澄清我完全理解为什么上述两个例子都给出了它们给出的结果。他们确实工作得很好,但这不是我想要的。我想要纯粹的绝对差异。

标签: php laravel time difference


【解决方案1】:

不幸的是,您需要将这些转换为日期时间。 php怎么知道23:59:59和00:00:01不在同一天?

【讨论】:

    【解决方案2】:

    您需要做的是将两者都分配给变量,并查看第二次是否在第一次之前。如果是这样,请增加一天。然后检查差异:

    $date1 = Carbon::parse('23:59:59');
    $date2 = Carbon::parse('00:00:01');
    if($date2->lt($date1)) {
       $date2->addDay();
    }
    
    $date2->diffInSeconds($date1); // 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多