Moin!
Da habe ich aber gewaltig was falsch gemacht und auch die Reihenfolge der Parameter ist zu optimieren:
<?php
#Test:
echo firstDayOfMounthAgo ( 1, '2016-01-11', 'Y-m-d' ), "\n";
echo firstDayOfMounthAgo ( 1 ), "\n";
echo firstDayOfMounthAgo ( 1, '2016-02-13', 'Y-m-d' ), "\n";
echo firstDayOfMounthAgo ( 1, '1969-02-13', 'Y-m-d' ), "\n";
function firstDayOfMounthAgo ( $mounth, $date = false, $format = 'Y-m-d' ) {
if ( false === $date ) $date = date( 'Y-m-d' );
list( $Y, $M, $dummy ) = explode( '-', $date, 3 );
if ( $M <= $mounth ) $Y--;
return date( $format, mktime( 0, 0, 0, $mounth, 1, $Y ) );
}
Resultate:
2015-01-01
2015-01-01
2016-01-01
1969-01-01
Jörg Reinholz