-1

このPHPのビットで時間差を計算し、それを日、時間、分でフォーマットしています。

// Compares expires_at with the current time
$now = new DateTime();
$future_date = new DateTime($contest->expires_at);

$interval = $future_date->diff($now);

$enddate = $interval->format("%a days, %h hours, %i minutes");

// if current time is higher than expiration date set contest to finished.
if($now > $future_date) {
    $enddate = 'Date ended';
}

ここで、1 日 (24 時間) を超える場合は合計日数のみを表示し、1 日 (24 時間) 未満の場合は時間と分でフォーマットを開始する形式が必要です。したがって、23 時間 59 分などから始まる時間と分にフォーマットされます。うまくいけば、アイデアが得られます。

一番簡単にできる方法を教えてください。

4

1 に答える 1

0

次のようにします。

// Compares expires_at with the current time
$now = new DateTime();
$future_date = new DateTime($contest->expires_at);

$interval = $future_date->diff($now);

if ($now > $future_date) {
    // if current time is higher than expiration date set contest to finished.
    $enddate = 'Date ended';
} else if ($interval >= new DateInterval("P1D")) {
    $enddate = $interval->format("%a days, %h hours, %i minutes");
} else {
    $enddate = $interval->format("%a days, %h hours, %i minutes");
}
于 2013-05-20T00:17:12.400 に答える