我正在尝试使用PHP在给定时间内添加60或90分钟。
我尝试过以两种方式做到这一点,结果都是出乎意料的结果。
输入数据:
$data['massage_hour_from'] = '09:00:00';
$data['massage_duration'] = 60;
首先尝试:
$data['massage_hour_to'] = date('H:i:s', strtotime('+' . $data['massage_duration'] . ' minutes', strtotime($data['massage_hour_from'])));
第二次尝试:
$datetime = new DateTime($data['massage_date']);
$datetime->setTime($data['massage_hour_from']);
$datetime->modify('+' . $data['massage_duration'] .' minutes');
$data['massage_hour_to'] = $datetime->format('g:i:s');
我做错了什么?
答案 0 :(得分:2)
我用较短的变量名替换了你的变量名,但是这段代码有效:
$from = '09:00:00'; //starting string
$duration = 90; //in minutes
$date = new DateTime($from);
$date->add(new DateInterval("PT{$duration}M"));//add minutes
$to = $date->format('H:i:s'); // '10:30:00'
答案 1 :(得分:0)
试试这个,
$data['massage_hour_to'] = strtotime("+90 minutes", strtotime($data['massage_hour_from']));
答案 2 :(得分:0)
$data['massage_hour_from'] = '09:00:00';
$data['massage_duration'] = new DateInterval('PT60M');
$massageStart = new DateTime($data['massage_hour_from']);
$massageStart->add($data['massage_duration']);
echo 'Massage ends at: ' . $massageStart->format('H:i:s');
您可以阅读有关DateInterval类构造函数args here
的更多信息