簡體   English   中英

如何使用 Carbon 或 PHP 獲取 Laravel 中的日期差異

[英]How to get date difference in Laravel using Carbon or PHP

我試圖找出兩個日期之間的差異。 格式來自 API 是Ym-dTH:i:s 最初,我想 output 是這樣的。 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。

試試碳差 function

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

Output

"0day 2hour 0minute"

確保

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

如果你想得到一天,分鍾,秒然后。

    $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;

嘗試這個

  $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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM