ここでは、時間を計算する(そしてエコーアウトする)PHPコードがあります。期間を計算する方法を選択するif/elseがあります。ある状況下では、出力される期間はDateTimeオブジェクトであり、もう1つはDateIntervalオブジェクトです。両方の書式設定はif/else文の外側で行われます。PHPのDateTimeの書式設定は機能しますが、DateIntervalの書式設定は機能しません。
計算が正常に動作していて、DateTimeオブジェクトの書式設定は正常に機能していますが、DateIntervalオブジェクトの書式設定はオフです。出力時間内のパーセント記号(コードブロックの最後の例)を示します。以下は
$time1 = new DateTime($row[0]);
$time2 = new DateTime($row[1]);
if ($time1 > $time2) {
$twentyFourHours = new DateTime('240000');
$difference = $time1->diff($twentyFourHours);
$time2->add($difference);
$duration = $time2; // this is a DateInterval object
}
else {
$duration = $time2->diff($time1); // This is a DateTime object
}
echo $duration->format('%H:%I');
echo '<br>';
echo $row['2'];
}
(他のすべての期間はパーセント記号とDateIntervalオブジェクトである)私は取得しています出力の例を示します。
2時10分
2016年6月16日
% 12:%0
% 12:私は2桁の時間と2桁の分、正しくフォーマットを設定しています、DateIntervalフォーマットのドキュメントに伝えることができるものから、%0
2016年6月17日
( '%のH:%Iは、 ')、しかし、出力はそうでないと思われるでしょう。私は何かばかげていることを見落としていると思います。誰かが間違っているところを指摘できれば、感謝しています。
多くのありがとうございます!
ヘッドアップありがとう。私はそれらを逆転させようとし、ここで尋ねる前に確認しておきました。私は両方でprint_rを実行し、それが明記されていたと誓っていたかもしれませんが、明らかにそうではありませんでした。翌朝明瞭な頭でそれを見ていたはずです。 –
私はそれを使って、両方のシナリオが同じタイプのオブジェクトを出力するようにします。条件付き書式設定は後で道を邪魔します。 –