PHP - Für Menschen lesbare Zeiträume
Datumsanzeigen sind nicht einfach. Und Zeiträume auch nicht. Zumindest wenn man den Nutzern eine möglichst natürliche Schreibweise anbieten möchte, also nicht im “technischen” Format TT.MM.YYYY. Schöner wären da doch Datums-Zeiträume wie z.B.:
Donnerstag, 26. April 2012
Mittwoch, 11. bis Donnerstag, 26. April 2012
Donnerstag, 26. April bis Mittwoch, 9. Mai 2012
Samstag, 29. Dezember 2012 bis Mittwoch, 2. Januar 2013
Hier eine Beispielfunktion in PHP, welche eine solche Ausgabe erzeugen kann:
function getFullwrittenDaterange($startdate, $enddate){
if($startdate && $enddate){
$c .= 'startdate && enddate';
if($startdate == $enddate){
$c = strftime ("%A, %e. %B %Y", $startdate);
}else{
if(date("Y",$startdate) == date("Y",$enddate)){
if(date("m",$startdate) == date("m",$enddate)){
$c = strftime ("%A, %e.", $startdate).' bis '.strftime ("%A, %e. %B %Y", $enddate);
}else{
$c = strftime ("%A, %e. %B", $startdate).' bis '.strftime ("%A, %e. %B %Y", $enddate);
}
}else{
$c = strftime ("%A, %e. %B %Y", $startdate).' bis '.strftime ("%A, %e. %B %Y", $enddate);
}
}
}elseif($startdate && !$enddate){
$c = strftime ("%A, %e. %B %Y", $startdate);
}else{
$c = null;
}
return $c;
}
Zu beachten sind natürlich noch Locale Angaben (welche ggf. bereits vom CMS gesetzt wurden) und die Lokalisierung des Ausgabeformates.