Yanıtlar:
PHP> = 5.2.2 olduğundan, DateTime
sınıfı şu şekilde kullanabilirsiniz :
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
DateTime yapıcısına iletilen dize bu kurallara göre ayrıştırılır .
Kullanmanın time
ve strtotime
işlevlerin de mümkün olduğunu unutmayın . Orijinal cevaba bakın .
new DateTime('2010-05-15')
sadece bir örnektir, daha önce başlattığınız herhangi bir DateTime nesnesi olabilir.
$object
bir DateTime nesnesi olduğunu varsayarsak , kullandım if (new DateTime() > $object) {}
ve yanlış çalışıyor. Ama if (time() > $bject->getTimeStamp()) {}
düzgün çalışıyor. @Salman A
Karşılaştırma işleçleri için bir işlev uygulayan DateTime sınıfı da vardır .
// $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';
}
strtotime
Ayarladığınız tarihi / saati bir zaman damgasına dönüştürmek için PHP'nin işlevini kontrol edin : http://php.net/manual/en/function.strtotime.php
Eğer strtotime
doğru ( "4 de" "04:00" muhtemelen çalıştığını ancak) Tarih / saat biçimini işleyemez, sen örneğin kullanım dize fonksiyonları gerekir substr
/ ayrıştırmak için Formatınızı düzeltip aracılığıyla zaman damgası almak başka bir işlev, örneğin mktime
.
Ardından if ($calulated_timestamp > time()) { /* date in the future */ }
, ayarlanan tarih / saatin geçmişte mi yoksa gelecekte mi olduğunu görmek için ortaya çıkan zaman damgasını geçerli tarih / saatle ( ) karşılaştırın.
Tarih / saat işlevleriyle ilgili PHP belgesini okumanızı ve takılıp kaldığınızda kaynak kodunuzun bir kısmıyla buraya geri dönmenizi öneririm.
date_default_timezone_set('Asia/Kolkata');
$curDateTime = date("Y-m-d H:i:s");
$myDate = date("Y-m-d H:i:s", strtotime("2018-06-26 16:15:33"));
if($myDate < $curDateTime){
echo "active";exit;
}else{
echo "inactive";exit;
}
$myDate
eşit olacağı şekilde çalışmayacaktır string (0) ""
.