Ben bugün ile ilgili son yedi ile on gün üreten tarih ve gün ile ilgili yardıma ihtiyacım var. Nasıl doğru bir zaman damgası hafta, ay ve yıl değişim dikkat çekebilirsiniz oluşturulabilir?
$timestamp = time();
for ($i = 0 ; $i < 7 ; $i++) {
echo date('Y-m-d', $timestamp) . '<br />';
$timestamp -= 24 * 3600;
}
Bu çıktıyı alacak olan:
2010-02-25
2010-02-24
2010-02-23
2010-02-22
2010-02-21
2010-02-20
2010-02-19
Bir damgası sadece çıkartılarak 24*3600
saniye anlamına gelen bir zaman damgası için bir gün çıkartılmasıyla 1970-01-01
beri saniye sayısını temsil eder çünkü.
Edit after the comments :
Ay ve haftalar değişiklikler için, bu hala çalışır: Bir gün yine 24 * 3600 saniyedir.
Örneğin, yerine benim ilk örnekte yayınlanan ilk birinin bu hattı kullanan test ederseniz:
$timestamp = strtotime('2010-02-03');
Bu çıktıyı alırsınız:
2010-02-03
2010-02-02
2010-02-01
2010-01-31
2010-01-30
2010-01-29
2010-01-28
Bu ay cezası değişti.
For leap years, if I test using this :
$timestamp = strtotime('2008-03-03');
Alıyorum:
2008-03-03
2008-03-02
2008-03-01
2008-02-29
2008-02-28
2008-02-27
2008-02-26
29 Şubat 2008 gün orada olduğu gibi, gayet iyi görünüyor hangi.
Ve ben eğer test:
$timestamp = strtotime('2009-03-03');
Alıyorum:
2009-03-03
2009-03-02
2009-03-01
2009-02-28
2009-02-27
2009-02-26
2009-02-25
Çok iyi görünüyor hangi.
PHP 5.3 ile oynamak mümkün olacak kadar şanslı iseniz (neden?) Ardından DateTime / Interval / Period sınıfları da son derece gelecek yararlıdır. Aşağıdaki örnek, günümüze nazaran (bugün) ile birlikte önceki 7 gün boyunca tarihlerini yazdırır.
$start = new DateTime('-7 days', new DateTimeZone('UTC'));
$period = new DatePeriod($start, new DateInterval('P1D'), 7);
foreach ($period as $date) {
var_dump($date->format('D d-m-Y'));
}
Hangi şey gibi çıktılar:
string(14) "Thu 18-02-2010"
string(14) "Fri 19-02-2010"
string(14) "Sat 20-02-2010"
string(14) "Sun 21-02-2010"
string(14) "Mon 22-02-2010"
string(14) "Tue 23-02-2010"
string(14) "Wed 24-02-2010"
string(14) "Thu 25-02-2010"
Benzer strtotime (yukarıdaki gibi aynı çıktıyı üretir) aşağıdaki kod parçasında olduğu gibi nispeten kolayca yapılabilir:
for ($i = 7; $i >= 0; $i--) {
var_dump(date('D d-m-Y', strtotime("-$i days")));
}
Kullan strtotime()
a>
for($i = 1; $i <= 10; $i++){
echo strtotime("-$i days"), PHP_EOL;
}
Ayrıca bu ilgili soru ve cevapları bakın:
Eğer bulabilirsiniz İhtiyacınız olan her şey this page of the php manual.