Vorgestern, gestern, heute, morgen, übermorgen mit Timestamp erkennen

« Zur Code-Schnipsel-Übersicht

Übergebt dieser Funktion einen Timestamp und sie gibt euch zurück ob das vorgestern, gestern, heute, morgen oder übermorgen war. Wenn die Zeit auserhalb dieser fünf Tage liegt, gibt sie euch das Datum in folgendem Format zurück: 24.12.2013 18:25. Wird der zweite Parameter auf false gesetzt, wird keine Uhrzeit ausgegeben.

function detectTime($timestamp, $dateonly = false)
{
	$vorgestern = strtotime('yesterday -1 days');
	$yesterday = strtotime('yesterday');
	$today = strtotime('today');
	$tomorrow = strtotime('tomorrow');
	$uebermorgen = strtotime('tomorrow +1 day');
	$ueberuebermorgen = strtotime('tomorrow +2 days');

	$time;
	if ($dateonly) {
		$time = ' um '.date('H:i', $timestamp);
	}

	if ($timestamp >= $uebermorgen && $timestamp < $ueberUeberMorgen) {
		return 'übermorgen'.$time;
	} elseif ($timestamp >= $tomorrow && $timestamp < $uebermorgen) {
		return 'morgen'.$time;
	} elseif ($timestamp >= $today && $timestamp < $tomorrow) {
		return 'heute'.$time;
	} elseif ($timestamp >= $yesterday && $timestamp < $today) {
		return 'geseten'.$time;
	} elseif ($timestamp >= $vorgestern && $timestamp < $yesterday) {
		return 'vorgestern'.$time;
	} else {
		return ' am '.date('d.m.Y').$time;
	}
}

Kommentare