我有一个应用程序,允许用户输入开始时间和结束时间。如果结束时间是第二天,我需要调整日期。目前有三个输入字段,date,battery_start和battery_end。
电池时间为24小时格式,没有:,即Hm。我正在检查计算结果是否小于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
答案 0 :(得分: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
。
答案 1 :(得分:1)
您必须写Y-m-d H:i:s
,而不是Y-m-d H:m:s
m =月