Ankerlink an den Anfang der Seite
old town hall 2550020 1920
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 20. Januar 2019, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Nicht immer genügt es, sich damit zufrieden zu geben, die Ausgabe von Zeitformaten bei ACF-Feldern bestimmen zu können. Mithin braucht es die Funktion strtotime (wofür nicht jeder Rückgabewert geeignet ist), um mit den Datumswerten Berechnungen anzustellen.

Für die gewünschte Ausgabe von Datumswerten muss man dann allerdings selbst sorgen und beachten, dass die Formate ggf. übersetzbar sind. Die Ausgabewerte entsprechen in diesem Fall der englischen Darstellung von Terminen und Zeit.

Als Rückgabeformat für die Datumswerte wählte ich Ymd (Ergebnis zum Beispiel 20190120), und für die Zeitwerte H:i:s (Ergebnis zum Beispiel: 12:33:59). Die sichtbaren Rückgabewerte werden ohnedies neu festgelegt.

Gleiches Jahr im Startdatum weglassen

Wenn sich Start- und Enddatum im gleichen Jahr befinden, wird das Jahr im Startdatum ausgeblendet, andernfalls angezeigt.

$begins = strtotime(get_field('startdate'));
$ends = strtotime(get_field('enddate'));

$startyear = date('Y', $begins);
$endyear = date('Y', $ends );

/* translate to german format i.e. 'l, d. F Y' */
$format_noyear = __('l, F j', 'my-textdomain');
$format_year = __('l, F j, Y', 'my-textdomain');
$startdate = ( $startyear == $endyear ? date_i18n( $format_noyear, $begins ) : date_i18n( $format_year, $begins ) );
$enddate = date_i18n( $format_year, $ends );

$content = sprintf( '<div class="timerange">%1$s - %2$s</div>', $startdate, $enddate );

Loop 1: Alle Tage zwischen zwei Datumswerten listen

Nachfolgende Schleife gibt jeden Tag zwischen zwei Datumswerten inklusive erstem und letzten Termin zurück, zum Beispiel um einen Tag in einem Dropdown auswählen zu lassen.

$begins = strtotime(get_field('startdate'));
$ends = strtotime(get_field('enddate'));

/* translate to german format i.e. 'l, d. F Y' */
$format_year = __('l, F j, Y', 'my-textdomain');

$dates[] = date_i18n( $format_year, $begins );

while ( $begins < $ends )  { 
	$begins = strtotime('+1 day',$begins);
	$dates[] = date_i18n( $format_year, $begins );
}

return $dates;

Loop 2: Jede Stunde zwischen zwei Zeitwerten listen

Nachfolgende Schleife gibt jede Stunde zwischen zwei Zeitwerten zurück, zum Beispiel um einen Termin aus einem Dropdown wählen zu lassen.

$begins = strtotime(get_field('starttime'));
$ends = strtotime(get_field('endtime'));

/* 12 hours AM and PM translate to german format 'H:i' */
$format_time = __('g:i A', 'my-textdomain');

$hours[] = date_i18n( $format_time, $begins );

while ( $begins < $ends )  { 
	$begins = strtotime('+1 hour',$begins);
	$hours[] = date_i18n( $format_time, $begins );
}

return $hours;

Zeitformate in PHP

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

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

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.