Nasıl tarih 5 gün önce ne olduğunu öğrenmek için?

3 Cevap

Peki, tarih aşağıdaki döner 5 gün önce oldu:

$days_ago = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 5, date("Y")));

Ama, nasıl ben sadece bugün, any date 5 gün önce değildi ne bulabilirim?

Örneğin: 5 gün önce 2008-12-02 Ne oldu?

3 Cevap

Bunu yapmanın bir yolu, okunabilir olduğunu düşünüyorum:

$days_ago = date('Y-m-d', strtotime('-5 days', strtotime('2008-12-02')));
define('SECONDS_PER_DAY', 86400);
$days_ago = date('Y-m-d', time() - 5 * SECONDS_PER_DAY);

Bunun dışında, size strtotime herhangi bir tarih için kullanabilirsiniz:

$days_ago = date('Y-m-d', strtotime('January 18, 2034') - 5 * SECONDS_PER_DAY);

Ya da, kullanılan, mktime:

$days_ago = date('Y-m-d', mktime(0, 0, 0, 12, 2, 2008) - 5 * SECONDS_PER_DAY);

Peki, bunu olsun. Anahtar damgası yeterli saniye kaldırmaktır.

Eğer algoritma biliyor, ya da önceki yanıtta belirtilen fonksiyonlar mevcut olmayan hangi bir yöntem istiyorsanız: (1 Ocak itibaren gün sayıyor bir yoludur, 4713 M.Ö.) Jülyen Gün sayıya tarihi dönüştürmek, sonra çıkarma beş, sonra takvim tarih (yıl, ay, gün) geri dönüştürmek. Iki dönüşüm için algoritmalar Kaynakları http://www.hermetic.ch/cal_stud/jdn.htm bölümünde 9 veya http://en.wikipedia.org/wiki/Julian_day olduğunu