Php geçen ayki tarihini Başlarken

10 Cevap php

Geçen ayki tarihini almak istiyorum. Ben bunu yazdı:

$prevmonth = date('M Y');

Bana geçerli ay / yıl verir. Ben kullanmanız gerekir eğer ben söyleyemem strtotime, mktime. Timestamp için bir şey mi? Ben tarih sitemde tüm damgaları için her şeyi boyunca geçen aya ayarlı değil böylece sıfırlamak için sonradan bir şey eklemek gerekir mi? Ben RTFM çalışıyorum ama bana bu anlamaya için çok zor.

10 Cevap

Geçen ay tarihi almak için basit

echo date("Y-m-t", strtotime("first day of previous month") ) ;
echo date("Y-m-1", strtotime("first day of previous month") ) ;

3 Mart döner at

2011-02-28
2011-02-1
echo strtotime("-1 month");

Tam olarak geçen ay için o irade çıkış damgası. Sen sonradan şey sıfırlamak gerekmez. Eğer bundan sonra İngilizce bir formatta istiyorsanız, yani, date() damgası biçimlendirmek için kullanabilirsiniz:

echo date("Y-m-d H:i:s",strtotime("-1 month"));

Önceki ay geçerli az olunca bu bir yanlış buldu.

echo date("Y-m-d H:i:s",strtotime("-1 month"));

Mart'ta 30 deneyin ve yerine 2012-02 arasında 2012/03/01 alacak ...

Daha iyi bir çözüm üzerinde çalışıyorum ...

Sadece bir önceki aya almak istiyorsanız, o zaman aşağıdaki gibi kullanabilirsiniz

$prevmonth = date('M Y', strtotime('-1 months'));

Eğer bir önceki ayın aynı gün almak istiyorsanız, Sonra aşağıdaki gibi kullanabilirsiniz ..

$prevmonth = date('M Y d', strtotime('-1 months'));

Eğer bir önceki ayın son tarihi almak istiyorsanız, Sonra aşağıdaki gibi kullanabilirsiniz ...

$prevmonth = date('M Y t', strtotime('-1 months'));

Eğer bir önceki ayın ilk tarih almak istiyorsanız, Sonra aşağıdaki gibi kullanabilirsiniz ...

$prevmonth = date('M Y 1', strtotime('-1 months'));
$time = mktime(0, 0, 0, date("m"),date("d")-date("t"), date("Y"));
$lastMonth = date("d-m-Y", $time);

VEYA

$lastMonth = date("m-Y", mktime() - 31*3600*24);

30.03.2012 tarihinde çalışır

Bu benim için çalışıyor:

Bugün: 31/03/2012

echo date("Y-m-d", strtotime(date('m', mktime() - 31*3600*24).'/01/'.date('Y').' 00:00:00')); // 2012-02-01
echo  date("Y-m-d", mktime() - 31*3600*24); // 2012-02-29

Eğer ben hangi durumda yaptım aynı sorun yoksa Ah ben bu anladım, lütfen dikkate almayın:

$prevmonth = date("M Y",mktime(0,0,0,date("m")-1,1,date("Y")));

Herhangi bir tarih için önceki ay almak için bu kısa kodu kullanabilirsiniz:

$tgl = '25 january 2012';

$prevmonth = date("M Y",mktime(0,0,0,date("m", strtotime($tgl))-1,1,date("Y", strtotime($tgl))));
echo $prevmonth;

The result is December 2011. Works on a month with shorter day with previous month.

Eğer bir önceki ayın ilk tarihi almak istiyorsanız, Sonra ... $prevmonth = date('M Y 1', strtotime('-1 months')); Ne aşağıdaki gibi kullanabilir miyim? D: İlk tarih her zaman 1 olacak