Сравнение временных меток PHP - PullRequest
0 голосов
/ 02 февраля 2011
$today      = mktime(0,0,0,2, 9, 2011);
$today >= $r['arrival_date'] // false
9 >= date('j', $r['arrival_date']) // true

$r['arival_date'] is 1297227600 [Feb 9, 2011 07:00]

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Simple:

$today = mktime(0,0,0,2, 9, 2011); // = 1297209600

и

$r['arival_date'] = 1297227600;

так

1297227600 > 1297209600

потому что

date('H',$r['arrival_date']); // 7
date('H',$today); // 0
1 голос
/ 02 февраля 2011

Чтобы расширить и объяснить ответ Андре Матоса, mktime(0,0,0,2,9,2011); - это 00:00:00 Feb 9 2011, в основном это первое мгновение 9 февраля, а дата прибытия - 07:00:00 Feb 9 2011, 7 часов спустя, поэтому его отметка времени больше, чем у создатель mktime.

Чтобы проверить, попадает ли отметка времени в определенный день, вы можете проверить несколькими способами:

//You can check by adding a day onto the timestamp for today, 24*60*60 is one days worth of seconds (86400 seconds)
if($r['arrival_date'] >= $today && $r['arrival_date'] <= $today + (24*60*60))

//Or you can mktime for tomorrow too.  
$tomorrow = mktime(0,0,0,2,10,2011);
if($r['arrival_date'] >= $today && $r['arrival_date'] <= $tomorrow)

//Or you could check the way you have up there, by running it through date and checking if one is equivalent to another
//Or you could do strtotime in there somewhere, or whatever

Это всего лишь пара самых простых. По сути, поскольку временные метки уменьшаются до секунды (в частности, секунд с 00:00:00 Jan 1 1970 UTC), вам придется проверять их по диапазону.

...