在計算時間差之後,我該如何確定差值是只有分鐘,還是小時,或是天、週、月、年...?
$now = new DateTime('now'); $expire_date = date('Y-m-d H:i:s', strtotime('+ 3 weeks')); $expire_on = new DateTime($expire_date); $time_left = $now->diff($expires_on); *** 伪代码如下所示,展示了我想要实现的功能 if ($time_left < 1 小时) 显示分钟 elseif ($time_left < 1 天) 显示小时和分钟 elseif ($time_left < 1 周) 显示天、小时和分钟 elseif ($time_left < 1 月) 显示周、天、小时和分钟 elseif ($time_left < 1 年) 显示月、周、天、小时和分钟 endif ** 结束伪代码
正如我很快學到的那樣,我需要澄清問題。我只想顯示最少的資訊。例如:“剩餘39分鐘”,而不是“剩餘0天,0小時,39分鐘”。
https://www.php.net/manual/en/class.dateinterval.php - DateInterval物件中有一些屬性(其中$time_left是其中之一),因此您可以測試它們並查看它們是否大於0。我建議從最大的開始。
例如:
線上示範:https://3v4l.org/BiYHD。嘗試調整
$expire_date
並測試您獲得的結果。注意:由於某種原因,DateInterval類別不支援告訴您週數。上面我假設天數除以7足以計算出週數。然後必須重新計算剩餘的天數(減去分配週中的天數)。