Frühere Zeitpunkte mit mktime() richtig berechnen
bearbeitet von RaketenwilliUnd jetzt noch die Variante, die Verwirrungen genau am Monatsende (durch den mehrfachen Aufruf von `date()` ) strikt vermeidet …
~~~PHP
<?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 . "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;
~~~
Frühere Zeitpunkte mit mktime() richtig berechnen
bearbeitet von RaketenwilliUnd jetzt noch die Variante, die Verwirrungen genau am Monatsende (durch den mehrfachen Aufruf von `date()` ) strikt vermeidet …
~~~PHP
<?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 . "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;
~~~
strtotime()
bearbeitet von RaketenwilliUnd jetzt noch die Variante, die Verwirrungen genau am Monatsende (durch den mehrfachen Aufruf von `date()` ) strikt vermeidet …
~~~PHP
<?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 . "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;
~~~
strtotime()
bearbeitet von RaketenwilliUnd jetzt noch die Variante, die Verwirrungen genau am Monatsende (durch das mehrfache date() ) strikt vermeidet …
~~~PHP
<?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 . "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;
~~~