【问题标题】:PHP - Get difference between two datetime in seconds [duplicate]PHP - 以秒为单位获取两个日期时间之间的差异[重复]
【发布时间】:2021-03-18 15:39:10
【问题描述】:

我有一个日期时间值,我现在想要那个日期时间和日期时间之间的差异。我试图将它转换为时间戳并计算差异,但我得到了一个负值。如何以秒为单位获得差异?

<?php 
$datetimenow = strtotime(date("Y/m/d H:i:s"));
$mydatetime = strtotime(date('2015/10/09 14:20:00'));
echo ($datetimenow - $mydatetime);
?>

【问题讨论】:

  • 确保后面的日期是第一个日期。或者使用abs() 忽略负值。

标签: php date datetime strtotime


【解决方案1】:

改用DateTime class,即:

date_default_timezone_set( 'Europe/Lisbon' ); //set your desired timezone
$now = new DateTime( 'NOW' );
$future = new DateTime( '2015/10/09 15:20:00' );
$diffSeconds = $future->getTimestamp() - $now->getTimestamp();
# 2220

【讨论】:

  • ... 或 Datetime::diff()-&gt;format() : php.net/manual/en/datetime.diff.php ... 但你还是会因为使用DateTime 而获得支持;)
  • @CD001 该选项提供的时间不超过 59 秒。但我最初也有同样的想法。
  • @PedroLobito 谢谢你的回答,我第一次尝试了两个不同的日期 (2015/10/09 17:40:44) 和第二个 (2015/10/09 14:20:13) 。 .第一个给我负值(-4478)..第二个给我正值(7572)!
【解决方案2】:

我喜欢 Carbon 库...https://github.com/briannesbitt/Carbon

$diff = Carbon::now()->diffInSeconds(Carbon::parse('2015/10/09 14:20:00'));

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多