Meowsalot: Tage berechnen

Beitrag lesen

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)