データベースの開始時刻と終了時刻を比較していました。私はついにそれを理解することができましたが、今はすべての時間差を合計するために時間を一緒に追加する必要があります。それを行う最善の方法と最速の方法は何ですか?私は以前にDateTimeを使ったことがありません。 私はwhileループに$date->add($interval)
のようなものを追加できますか?私はそれを実装する適切な方法を理解できません。 $starttime
のvar例:11時〇三分52秒AM $startdate
するvar例:2016年8月16日 $endtime
のvar例:午前8時04分53秒AM $enddate
のvar例:2016年8月17日DateTimeを使用して複数の日付と時刻を追加する
$start = $startdate." ".$starttime;
$end = $enddate." ".$endtime;
$start_formatted = DateTime::createFromFormat('m-d-Y g:i:s A', $start);
$started_on = $start_formatted->format("m-d-Y g:i:s A");
$end_formatted = DateTime::createFromFormat('m-d-Y g:i:s A', $end);
$ended_on = $end_formatted->format("m-d-Y g:i:s A");
$interval=$start_formatted->diff($end_formatted);
$intervalTypes = array("y", "m", "d", "h", "i", "s");
$intervalDescription = array("years", "months", "days", "hours", "minutes", "seconds");
$intervalLength = count($intervalTypes);
$intervalCounter = 0;
while ($intervalCounter < $intervalLength) {
$currentInterval = $intervalTypes[$intervalCounter];
if ($interval->$currentInterval != 0) {
if ($interval->$currentInterval > 1) {
echo $interval->$currentInterval." ".$intervalDescription[$intervalCounter]." ";
} else {
echo $interval->$currentInterval." ".substr($intervalDescription[$intervalCounter], 0, -1)." ";
}
}
$intervalCounter++;
}