Datum um ein Jahr erhöhen – Vorsicht Schaltjahr

Im Internet findet man diverse Lösungen, um ein Datum programmiermäßig zu erhöhen. Leider wird dabei oft nicht auf die wenigen Sonderfälle eingegangen, die trotz ihrer Seltenheit natürlich trotzdem auftreten können.

Im folgenden eine Funktion, die ein Datum im Format 0000-00-00 00:00:00 um ein Jahr erhöht. Hierbei ist es wichtig zu beachten, dass an einem 29. Februar (Schaltjahr) die Jahreszahl des Datum nicht einfach um 1 erhöht werden kann, da das Folgejahr naturgemäß keinen 29. Februar hat.
Es wird davon ausgegangen dass die Funktion einen validen Datums-String im genannten Format übergeben bekommt. Sollte das Datum dem Standardwert entsprechen, wird false zurückgegeben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function get_one_year_later($time_string="0000-00-00 00:00:00") {
	if($time_string != "0000-00-00 00:00:00") {
		if(date("m", strtotime($time_string)) ==
		  "2" && date("d", strtotime($time_string)) == "29") {
			return date("Y-m-d H:i:s",
			  strtotime((date("Y", strtotime($time_string))+1).
			   date("-m-28 H:i:s", strtotime($time_string)))
			);
		} else {
			return date("Y-m-d H:i:s",
			  strtotime((date("Y", strtotime($time_string))+1).
                            date("-m-d H:i:s", strtotime($time_string)))
			);
		}
	}
	return false;
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.