0

私はここで完全に立ち往生しています。現在の時刻から午後 6 時の 7 日後までの計算から、何日の時間と分をエコーするかを取得しようとしています。$difference 変数から生成された秒数を見て、それを日、時間、分に変換する計算を行うと正しいのですが、何らかの理由で、出力ステートメントで特定の日、時間、分を呼び出すと、間違っています。私は何を間違っていますか。これがコードです。

<?php
date_default_timezone_set('America/New_York');
$nextWeek = strtotime('+7 days');
$m = date('n', $nextWeek);
$d = date('j', $nextWeek);
$y = date('Y', $nextWeek);
$difference = mktime(18,0,0,$m,$d,$y) - time();


echo '<p>Current date and time is' .date(' l F d, Y '). 'at '.date('g:i a').' You have an appointment in a week on '.date(' n/j/Y ', $nextWeek).' at 6pm. There are ' .date(' j ', $difference).' days, ' .date(' g ', $difference).' hours, and ' .date(' i ', $difference).' minutes until your appointment.</p>';

echo mktime(18,0,0,$m,$d,$y),"\n";
echo $difference;

?>
4

2 に答える 2

0

これをチェックしてみてください。ページの途中の例は、2つの日付の日数の違いを見つける方法を示しています。フォーマットを変更することで、現在の時刻と7日間の時刻の差を18:00に返すことができるはずです。

于 2012-08-24T15:52:42.103 に答える
0

問題は、日付date()を表さない数値でPHP の関数を使用していることです。変数は、2 つの日付の差を秒単位で表します。適切な出力を得るには、これらの秒を日数、時間数、分数などに変換する独自の関数を作成する必要があります。$difference

次のようになります。

function getTimeText($seconds)
{
    $return = array();

    $return["days"] = floor($seconds/86400); // 86400 seconds in a day
    $seconds -= ($return["days"]*86400);

    $return["hours"] = floor($seconds/3600); // 3600 seconds in an hour
    $seconds -= ($return["hours"]*3600);

    $return["minutes"] = floor($seconds/60); // 60 seconds in a minute

    return $return;
}
于 2012-08-24T15:50:28.180 に答える