[英]Laravel Convert seconds into days hours and minutes
我必須使用時間計算來實現一些功能,並且我的應用程序具有以下類型的代碼。
date_default_timezone_set(auth()->user()->timezone);
$t_now = \Carbon\Carbon::parse(date('Y-m-d H:i:s'));
$t_allowed = \Carbon\Carbon::parse($shift_details->start_time) ;
@endphp
@php
$check = $t_allowed->diffForHumans($t_now);
$search = 'after';
$dff_min = $t_allowed->diffInSeconds($t_now, true);
$init = $dff_min;
$day = floor($init / 86400);
$hours = floor(($init - $day * 86400) / 3600);
$minutes = floor(($init / 60) % 60);
$seconds = $init % 60;
$late_not_late = $hours . ' hours ' . $minutes . ' minutes ' . $seconds . ' seconds ';
首先我想確認$dff_min = $t_allowed->diffInSeconds($t_now, true);
是返回分鍾還是秒? 據我所知, $dff_min
包含秒數,我知道可以使用(init /3600)
計算小時數,但以下語句的含義是什么
$hours = floor(($init - $day * 86400) / 3600);
為什么開發人員從$init
中減去$day * 86400
?
類似地,我們也可以通過 $init/60 計算秒數,因為在一分鍾內有 60 秒,但是下一行的含義是什么
$minutes = floor(($init / 60) % 60);
以及為什么他在這里使用模數
$seconds = $init % 60;
\Carbon\Carbon::parse(date('Ymd H:i:s'))
將調用兩次 timelib 並會丟失微秒,只需執行\Carbon\Carbon::now()
並且您不需要重新發明輪子,你可以得到這個確切的字符串:
$t_now = \Carbon\Carbon::now();
$t_allowed = \Carbon\Carbon::parse($shift_details->start_time);
$late_not_late = $t_allowed->diffForHumans($t_now, ['parts' => 3, 'syntax' => CarbonInterface::DIFF_ABSOLUTE]);
$late_not_late 將包含2 days 9 hours 20 minutes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.