Guten Morgen,
ich verstehe eines nicht
$end->modify( '+0 day' );
oder
$end->modify( '+1 day' );
In einigen Tutorials lese ich um genau ein Datum zu berechnen muss ich +0 bzw. +1 hinzurechnen. Was ist denn jetzt genau richtig?
Gehen wir mal von folgender Rechnung aus: 01.01.2018 - 15.03.2018 sind 53 Arbeitstage laut http://www.arbeitstage.de wenn man den 01.01.2018 abzieht, denn dieses war ein Feiertag.
$begin = new DateTime( $_SESSION['von'] );
$end = new DateTime( $_SESSION['bis'] );
$end = $end->modify( '+0 day' );
$diff = $begin->diff($end);
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);
$i = 1;
$Feiertage = 1; // 01.01.2018
foreach($daterange as $date){
$datum = strtotime($date->format("Y-m-d"));
$d = date("l", $datum);
if ($d != "Saturday" && $d != "Sunday" ) {
$i++;
}
Die Ausgabe lautet dann
// 53 Tage
<?php echo $i-$Feiertage ?>
Wenn ich es mit +1 day ausführe
$begin = new DateTime( $_SESSION['von'] );
$end = new DateTime( $_SESSION['bis'] );
$end = $end->modify( '+1 day' );
$diff = $begin->diff($end);
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);
$i = 1;
$Feiertage = 1; // 01.01.2018
foreach($daterange as $date){
$datum = strtotime($date->format("Y-m-d"));
$d = date("l", $datum);
if ($d != "Saturday" && $d != "Sunday" ) {
$i++;
}
erhalte ich
// 54 Tage
<?php echo $i-$Feiertage ?>
Daher meine Frage, was hat das +1 day auf sich bzw. wann wird/muss es benutzt werden? So hatte ich bis jetzt eine verfälschte Ausgabe.
Bis bald! Meowsalot (Bernd)