php ile tarih caculating

4 Cevap

Ben php ile tarihi hesaplanırken genel bir soru var.

Benim veritabanında böyle bir zaman damgası saklamak ne olur:

$db_timestamp = '2010-01-31 00:00:00';

ve sonra zaman damgası veritabanına kaydedilmiş yana bir ay geçti olmadığını denetleyen bir günlük komut dosyasını çalıştırın:

if ($db_timestamp == make_unix_timestamp(mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")), TRUE, 'eu'))) 
{ 
    do something 
};

benim sorunum ben sadece bu tüm tarihler için işe yaramayacağını fark olduğunu. Şubat bir 31 gün yok çünkü bu durumda, Şubat denilen olmaz 'bir şeyler yapmak'. Böyle bir şey nasıl uygulanacağı konusunda herhangi bir fikriniz var mı?

4 Cevap

$ts = strtotime($db_timestamp);
if ($ts < (time() - 2592000))
{
   do something;
}

2592000 saniye = 30 gün

Bir sorgu kullanarak damgası kontrol edebilir:

MySQL:

select date from table where date < now() - INTERVAL 1 MONTH;

Bu tür size "one month" düşünün nasıl bağlıdır.

"Bir ay" "30 gün" anlamına geliyorsa, bir çözüm geçerli zaman damgası ile veritabanından almak damgası karşılaştırmak olacaktır:

$db_timestamp = strtotime('2010-01-31');
$current_timestamp = time();
var_dump( ($current_timestamp - $db_timestamp) / (24*3600) );

Fark 30 gün ise ... bu.


A couple of notes :