Benim veritabanı başlatmak ve değişkenleri sonunda, tarih tutar. Kullanıcı bunları seçer gibi benim kodu başlangıç ve onları yakala, ve böylece (bütün bir foreach döngüsü içinde) gibi damgaları çevirebiliriz ..
$selectionDate = strtotime($timeQry['date']);
$startTimes[] = strtotime($timeQry['start'],$selectionDate);
$endTimes[] = strtotime($timeQry['end'],$selectionDate);
Bu bana damgaları olarak doğru başlangıç ve bitiş saatlerini verir. Ben o zaman doğrulamak için bir mantık deyimi var ve seçilen kez herhangi bir örtüşme olmadığını görmek ....
if(($startTimes[1] < $startTimes[0]) && ($endTimes[1] > $startTimes[0]) ||
($startTimes[1] > $startTimes[0]) && ($startTimes[1] < $endTimes[0]) )
{
echo "overlap"
}
Bu kod tarihini kullanır, çünkü son kez biri gece yarısı 12 (diyelim 02:00) sonra, o zaman damgası başlangıç saati daha küçük olması durumunda ise ancak rezervasyon başlamak istiyorum, çoğu zaman gayet iyi çalışıyor. Bu mantık başarısız olmasına neden olur ve örtüşme cevapsız.
Ben yapmayı düşündüm:
if( ($endTimes[$k] >= $selectionDate) )
{
$endTimes[] = strtotime($timeQry['end'],$newDate+ 1253574000);
}
else
{
$endTimes[] = strtotime($timeQry['end'],$selectionDate);
}
//...run same logic query
Hangi bir gün sonra yeni bir tarih yaratır. Ama ben bu konuda gitmek için doğru yol olduğunu sanmıyorum. Herkes bana yardımcı olabilir eğer çok minnettar olacaktır. Bana bu benim kafa kaşıyor var! Çok teşekkürler