-1

ユーザーが開始時刻と終了時刻を入力できるアプリがあります。終了時間が翌日になる場合は、日付を調整する必要があります。現在、date、battery_start、および battery_end の 3 つの入力フィールドがあります。

バッテリー時間は : を除いた 24 時間形式です。計算が最終的に 0 未満になるかどうか、battery_total < 0 になるかどうかを確認しています。そうであれば、battery_end を翌日に設定したいのですが、ユーザーがフィールドに入力した時間に合わせます。

     /**
     * if the flight spans two days, i.e. starts late at night
     * and ends early in the morning then adjust datetime
     */
    public function adjustFlightTime()
    {
        //check battery times
        if($this->battery_total < 0)
        {
            $this->battery_end = date('Y-m-d H:m:s', strtotime("$this->battery_end +1 days"));
            $this->battery_total = $this->battery_total +24;
        }
    }

新しい battery_end 時刻を保存しようとすると、時刻にさらに 9 分追加されますが、日付は正しいです。

DJ

4

2 に答える 2

2

DateTimeクラスを使用します。

$datetime = new DateTime($this->battery_end);
$datetime->add(new DateInterval('P1D'));
$this->battery_total = $datetime->format('Y-m-d H:i:s');

mにも変更したことに注意してくださいi

于 2013-09-17T14:52:19.630 に答える
1

Y-m-d H:i:sではなく、書く必要がありますY-m-d H:m:s

m = 月

于 2013-09-17T14:54:06.780 に答える