1

PHPで2つのUNIXタイムスタンプを比較する際に問題が発生しました。

$time_now = mktime();
if($auction->time_end > $time_now){
   //true
}
else{
   //false
}

$ auction-> time_endは1362579127であり、dbからintとして設定されます。$ time_nowは、たとえば1364129253であり、intとして設定されています。どちらも、var_dumpでチェックしており、実際に両方をintとして返しています。

問題は、PHPが1362579127が1364129253よりも大きい(falseを返す)と考えているように見えることですが、そうではありません。ifステートメントに値を入力すると、正常に機能しますが、オブジェクトを比較しているときは、気に入らないようです。

4

2 に答える 2

1

あなたの質問を見ると、あなたは論理が間違っているようです。現在の時間は常に過去の時間よりも大きくなります。次のことを試してください。

if($time_now>$auction->time_end){
//...
}
于 2013-03-24T13:15:09.443 に答える
0

32ビットシステムを使用している場合、int型の最大値は約20億と定義されています。両方の数字が大きすぎるようです。ドキュメントを参照してください。

于 2013-03-24T13:05:11.713 に答える