İki zaman aralıklarının arasındaki zaman bulmak?

4 Cevap

I have two times start_time=2009-12-01 9.30 pm and end_time=2009-12-01 11.30 pm(YYYY-MM-DD).If the user do any activity between these times ie at 2009-12-01 10.30 pm I need to tell him you are not valid to do this activity... The two times 2009-12-01 9.30 pm and 2009-12-01 11.30 pm is taken from database.The time 2009-12-01 10.30 is given by user.

Benim soru nasıl zaman 22:30 21:30-11:30 inbetween oluştu olduğunu bulabiliriz ...

PHP benim program yapmak

4 Cevap

strtotime() Unix saniye içine dizeleri dönüştürmek için kullanın. Sonra basit bir

if ($time1 < strtotime(10:30...) && strtotime(10:30...) < $time 2)
{
    //do your stuff;
}

Siz veritabanı sorgu veya PHP kullanabilirsiniz. PHP:

$timeStart = strtotime('2009-12-01 11.30');
$timeEnd   = strtotime('2009-12-01 09.30');
$time = strtotime('2009-12-01 10.30');

if($time > $timeStart && $time < $timeEnd) {
   echo "Between given times.";
}

unix zaman damgaları için "2009-12-01 21:30" ve "2009-12-01 23:30" dönüştürmek, daha sonra olanlar karşılaştırabilirsiniz <:

if ($start <= $event && $event < $end)
    complain();
} else {
    proceed();
}

Sadece bir SQL sorgusu kullanabilirsiniz zaman herhangi bir aşırı PHP idaresi yapmak için gerek yoktur:

SELECT 1 FROM your_table_name WHERE '2009-12-01 10:30:00' BETWEEN start_time AND end_time;

Kullanıcı etkinliği veritabanı içinde herhangi bir başlangıç ​​ve bitiş saatleri arasında oluşursa, bu 1 veya daha fazla sonuç (lar) dönecektir. Eğer (start_time, end_time) için masada bir soldaki önek indeksine sahip olmalıdır unutmayın.

Sadece sorgu sonuçlarını kontrol edin. Bir satır daha büyük veya 1'e eşit saymak varsa kullanıcı aktivite veritabanı başlangıç ​​ve bitiş saatleri arasında azaldığını biliyoruz.