PHP - Geçerli tarih / saati bir dizi tarih / zaman geçmiş olup olmadığını nasıl kontrol edebilirim?

4 Cevap php

Ben geçerli tarih / saat olup olmadığını kontrol edecek bir senaryo yazmaya çalışıyorum geçmiş 05/15/2010 at 4PM

Nasıl bu denetimi gerçekleştirmek için PHP'nin date () işlevini kullanabilirsiniz? Ben bunu yapmak için düzgün bir şekilde> düşünemiyorum. <

4 Cevap

Sen time() bu tarihten UNIX zaman damgası gösterimi ile karşılaştırabilirsiniz:

if (time() > strtotime("05/15/2010 4:00PM"))
{
    // current time is greater than 05/15/2010 4:00PM
}

strtotime parses the date sting using these rules.

Karşılaştırma operatörleri için bir işlevi uygulayan DateTime sınıfı da var.

// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');

if ( $dtA > $dtB ) {
  echo 'dtA > dtB';
}
else {
  echo 'dtA <= dtB';
}

Timestamp için set tarih / zaman dönüştürmek için PHP'nin strtotime-fonksiyonunu kontrol: http://php.net/manual/en/function.strtotime.php

strtotime ("16:00" muhtemelen "16:00 at" değil çalışacaktır ancak) doğru tarih / saat biçimini işleyemez eğer, örneğin, dize işlevlerini kullanmak gerekir substr ayrıştırmak için / sizin biçimini düzeltmek ve başka bir fonksiyonu sayesinde damgası almak, örneğin mktime.

Ardından geçerli tarih / zaman damgası çıkan karşılaştırma (if ($calulated_timestamp > time()) { /* date in the future */ }) ayarlanan tarih / saat geçmiş veya gelecekte olup olmadığını görmek için.

Ben tarih / zaman işlevleri üzerinde PHP-doc okumak ve sıkışmış bir kez kaynak kodunun bazı buraya geri almak öneririz.

DateTime nesne aralığı geçmişte yaklaşık 292 milyar yıl gelen gelecekte aynı etmektir. Damgası fonksiyonu (Eğer doğru hatırlıyorum 2038 yılına kadar 1970 den başlar) bir sınırı vardır.