2つの日付間の合計秒数を計算する最良の方法は何ですか?これまでのところ、私は次の線に沿って何かを試しました:
$delta = $date->diff(new DateTime('now'));
$seconds = $delta->days * 60 * 60 * 24;
ただし、days
DateIntervalオブジェクトのプロパティは、現在のPHP5.3ビルドでは壊れているようです(少なくともWindowsでは、常に同じ6015
値を返します)。私はまた、毎月の日数(30程度)、うるう年などを保存できない方法でそれを試みました:
$seconds = ($delta->s)
+ ($delta->i * 60)
+ ($delta->h * 60 * 60)
+ ($delta->d * 60 * 60 * 24)
+ ($delta->m * 60 * 60 * 24 * 30)
+ ($delta->y * 60 * 60 * 24 * 365);
しかし、私はこの中途半端なソリューションを使用することに本当に満足していません。
@warrenmの問題
—
Vadim Samokhin
format
は、秒数が0で分数が1である場合、$delta->format("%r%s")
0であることが判明することです:(
さらに悪いことに、上記の正確なコードを貼り付けたコーダーからのコードレビューで見つかった欠陥を誰かが修正していると言うと、毎月30日ではなく、毎年365日ではありません。:) [編集:そして、そのコーダーは私自身だったかもしれません!]
—
taiganaut
$delta->format("%r%s")
何ですか?