2010-07-21 26 views
10

Olayları tutan bir haftalık takvimim var ve kullanıcıların geçen günlerde etkinlik ekleyememelerini istiyorum. Bu yüzden böyle bir işlevi kullanmak için tring ediyorum:Belirli bir tarihin geçip geçmediğini kontrol edin

if(strtotime($this->day) < time()){ // date format is YYYY-MM-DD 
// date is past 
}else{ 
// date is not past 
} 

O kadar bir geçmiş günü olarak bugün bir tarih belirleyip dışında çalışıyor görünüyor. Neyi yanlış yapıyorum?

cevap

10

Bir zaman damgası asla yalnızca tarihi içerir, ancak her zaman geçerli saniyeye düşer. strtotime($this->day) bugünün tarihininumaralı telefondan geri dönecek. Şimdi ise, 11:12 ile karşılaştır.

Sen strtotime("$this->day 12:59:59pm"); ($this->day biçimi bunun için izin verirse) veya kullanım yarın 'ın damgası kullanabilirsiniz.

+1

Alternatif olarak, 'strtotime ($ this-> gün) kullanın user11977

+0

Teşekkürler adamım! Bu şekilde iyi çalışıyor! – Luciano

11

basit ->

if(strtotime($this->day) < strtotime(date('Y-m-d'))) 
{ 
    ... 
} 
else 
{ 
    ... 
} 
+0

Teşekkürler! Time() işlevinde bugün tarih belirlemeyi düşünmüyordum! – Luciano

+0

strtotime işlevi ... sadece bir yazım hatası yaptım .. üzgünüm –

+0

Eğer saniyeler için de hesaba katmak istiyorsanız, H: i: s strtotime (tarih ('Y-m-d H: i: s')) 'yi ekleyin. – justinl

0
if(strtotime($this->day) < mktime(0, 0, 0)){ 
    // date is past 
} else { 
    // date is not past 
} 
İlgili konular