正確に24時間経過してもそれ以上のことがなければ、真のブール式を返すことができますか?PHPでのタイムスタンプの比較
私はこれらを2回入れてstrtotime()
を使用しています:2の差が86400であるとき
$time1 = 1316268919;
$time2 = 1316268898;
正確に24時間経過してもそれ以上のことがなければ、真のブール式を返すことができますか?PHPでのタイムスタンプの比較
私はこれらを2回入れてstrtotime()
を使用しています:2の差が86400であるとき
$time1 = 1316268919;
$time2 = 1316268898;
これは、あなたが必要なものを行う必要があります。
if (($time1-$time2) == 86400) {
// Exactly 24 hours have passed.
}
有効なコメント。問題は年に2回しか起こりません;)(うーん、DSTに関するコメントは消えましたが、部分的には正しい) – jancha
これはすべての場合に正しい答えです。計算のためにDSTを考慮する必要はありません。ノートは "昨日同じ時間"ではなく "24時間"でした。したがって、DSTの境界線上にある場合、午前12時(真夜中)は午前1時から24時間です。これは、2回の間に24時間が経過したときの正解です。 – ircmaxell
「24時間」の正確な定義に依存します。正確に60分ごとに24時間を意味する場合、コードは正しいです。 24時間を意味する場合、コードはDSTとうるう秒の両方で正しくありません。 (例えば、毎日同じ時刻を意味する「24時間ごと」と言っているが、同じものではない。) –
24時間= 86400secので、それは正確に24時間
n.b.です該当する場合は、年に2回、DSTに問題を引き起こす可能性があります。
strtotime()
は、Unixエポックからの秒数を返します。だから時間の違いを見つけるには、単純に別のものを引く。その差を24時間(24 * 60 * 60)の秒数と比較します。
abs($time1 - $time2) === 60 * 60 * 24
ABSが念のためです。 time2はtime1より大きいかもしれません。
倍の差が60(分の秒)* 60 *(時速分)* 24(日の時間)= 86400に等しい場合は、日差
がhttp://stackoverflow.comあります/ search?q = compare + times + php – Fabio
答えは、あなたが24時間の絶対時間を知りたいのか、それともその時間帯の24時間を知りたいのかによって決まります。 'strtotime( '2011-10-30 02:00:00') - strtotime( '2011-10-29 02:00:00');'ヨーロッパ/ベルリンでは、その日のDST切り替えのため90000秒になります。 'strtotime'はDSTを認識しているので注意してください。' echo strtotime( '2011-10-30 02:00:00') - strtotime( '2011-10-29 02:00:00 +24時間'); 'は0 – Gordon