【问题标题】:How to get date difference in Laravel using Carbon or PHP如何使用 Carbon 或 PHP 在 Laravel 中获取日期差异
【发布时间】:2020-01-28 06:00:50
【问题描述】:

我试图找出两个日期之间的差异。来自 API 的格式是 Y-m-dTH:i:s。 最初,我想输出这样的东西。 02h 10m 但是当时差太大时,我不得不切换到01day 12hour 05minute 格式。

我尝试使用 $duration = 7600$duration = 28800

{{gmdate('t', $duration)}}day {{gmdate('H', $duration)}}hour {{gmdate('i', $duration)}}minute

{{gmdate('d', $duration)}}day {{gmdate('H', $duration)}}hour {{gmdate('i', $duration)}}minute

当差值仅为 2 小时时,这始终将日期值返回为 1。

【问题讨论】:

    标签: php laravel datetime php-carbon


    【解决方案1】:

    请务必

    use Carbon\Carbon;
    use Carbon\CarbonInterval;
    

    使用 Carbon 将您的 API 日期转换为格式化日期

    $formatted_dt1=Carbon::parse('2019-09-26 00:00:00');
    $formatted_dt2=Carbon::parse('2019-09-28 12:12:11');
    
    $totalDuration = $formatted_dt1->DiffInSeconds($formatted_dt2);
    
    echo CarbonInterval::seconds($totalDuration)->cascade()->forHumans();
    // output :- 2 days 12 hours 12 minutes 11 seconds
    

    如果你想得到 day,Minutes,Seconds 那么。

        $formatted_dt1=Carbon::parse('2019-09-26 00:00:00');
        $formatted_dt2=Carbon::parse('2019-09-28 00:00:00');
    
        $date_diff=$formatted_dt1->diffInDays($formatted_dt2);
        echo $date_diff.' Day '; //2 days
    
    
        $hours_diff = $formatted_dt1->diffInHours($formatted_dt2); 
        echo $date_diff.' Hours '; //48 Hours 
    
    
        $Minutesdiff = $formatted_dt1->diffInMinutes($formatted_dt2); 
        echo $Minutesdiff.' Minutes '; //2880 Minutes
    
    
    
        $seconddiff = $formatted_dt1->DiffInSeconds($formatted_dt2); 
        echo $seconddiff.' Seconds '; //172800  Seconds
        exit;
    

    【讨论】:

      【解决方案2】:

      试试碳差异函数

      $past = now();
      $future = now()->addHours(2);
      $past->diff($future)->format('%dday %hhour %mminute');
      

      Output

      "0day 2hour 0minute"
      

      【讨论】:

        【解决方案3】:

        试试这个

          $start_date = new DateTime('2012-09-01 04:10:58');
          $since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00'));
          echo $since_start->d.'days '.$since_start->h.'hours '.$since_start->i.'minutes';
        

        【讨论】:

          猜你喜欢
          • 2020-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多