2012-04-20 8 views

Odpowiedz

8

Należy użyć mktime() funkcję:

<?php 
echo date('Y-m-d', mktime(0,0,0,date('n')-1,1,date('Y'))); //2012-03-01 
?> 

See In Action

+0

... lub 'strtotime ('-'. (Date ('j') - 1). 'Days -1 month')' – DaveRandom

+0

Powinieneś pisać jako odpowiedź; P, staram się trzymać z dala od strtotime jak ty może zrobić prawie każdą manipulację datą/czasem z funkcją, która istnieje od czasu PHP 3;) –

+0

Wielkie dzięki. Potrzebowałem również ostatniego dnia, który jest teraz "date" ("Ym-d", mktime (0,0,0, data ("n"), 0, data ("Y"))) ' – geoB

1

To known bug z PHP 5.2.17

+0

Bez obejścia? – geoB

+0

Obejście @geoB to aktualizacja –

+0

Tak, PHP 5.2.x jest * waaay * nieaktualne, rozważ aktualizację wersji PHP. (@DaveRandom Edytowałem kilka sekund później) –

0
date('Y-m-d', strtotime('first day of -1 month') 

działa prawidłowo na PHP 7.0

Powiązane problemy