1

しばらく前に購入した PHP スクリプトを修正しようとしていますが、日付が 10 月に含まれているときに問題が発生するように見えるため、夏時間の計算に問題があると考えています。カレンダーを使用しており、10 月の時点で問題があるようです。

検索を行ったところ、DST に対応するためにタイムスタンプに 1 日を追加する方法に関して、このサイトで質問と回答が見つかりました。ただし、その場合は + 24*60*60 が使用され、私の場合は +86400 が使用されますが、どちらも同じ数値になります。

問題だと思うコードは次のとおりです。

    $day_increase=(strtotime($mysql_checkin_date)+86400);
    $mysql_checkin_date = date('Y-m-d',$day_increase);

+86400 の代わりに「+1 日」に変更する必要があると思います - この表現は正しいですか?

私が試みるたびに、構文エラーが発生するように見えるので、とにかく正しく構造化していないことは明らかです-これが私が試した1つの方法です:

    $day_increase=(strtotime($mysql_checkin_date) '+1 day');

どこが間違っていますか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

相対形式を使用するstrtotime()には、完全な文字列を渡す必要があります。

$day_increase = strtotime($mysql_checkin_date . ' +1 day');

仮定: $mysql_checkin_date MySQL の日付形式、つまり2013-09-09.

$mysql_checkin_dateがタイムスタンプの場合、2 番目のパラメーターとして渡すことができます。

$day_increase = strtotime('+1 day', $mysql_checkin_date);

または、より堅牢なDateTime クラスを調べることもできます。

于 2013-09-09T18:15:50.620 に答える