Und jetzt noch die Variante, die Verwirrungen genau am Monatsende (durch den mehrfachen Aufruf von date()
) strikt vermeidet …
<?php
list( $y, $m ) = explode( '-', date( 'Y-m' ) );
echo "Dieser Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-0, 1, $y ) ) . PHP_EOL;
echo "Letzter Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-1, 1, $y ) ) . PHP_EOL;
echo "Vorletzter Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-2, 1, $y ) ) . PHP_EOL;
echo PHP_EOL . "Willkürlich: Januar 2000" . PHP_EOL;
$y = 2000;
$m = 1;
echo "Dieser Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-0, 1, $y ) ) . PHP_EOL;
echo "Letzter Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-1, 1, $y ) ) . PHP_EOL;
echo "Vorletzter Monat: " . date( 'Ym', mktime( 0, 0, 0, $m-2, 1, $y ) ) . PHP_EOL;