Formateer datums volgens de drupal manier, gebruik de core functie en de date api (tijdzones en aanpasbare formaten)

Posted by: 
Dominique De Cooman

De hoofdfunctie in drupal om een datum te formateren is de format_date functie. Deze functie zal het formaat en de tijdzone overnemen die je configureerde op http://yoursite/admin/settings/date-time en http://yoursite/admin/settings/date-time/formats

<?php
//format_date($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL)
//Een voorbeeld om de unix tijdzegel om te zetten
format_date(time(), 'medium''''Europe/Brussels');
?>

Voor meer : http://api.drupal.org/api/function/format_date/6
Wanneer je werkt met http://drupal.org/project/date en je hebt de datum opgeslagen zoals dit in de database:

2010-06-11T14:00:00

Dan moet je het opgeslagen formaat eerst converteren met de date api:

<?php
//date_convert($date, $from_type, $to_type, $tz = 'UTC')
$timestamp date_convert($node->field_date[0]['value'], DATE_ISODATE_UNIX);
format_date($timestamp);

//Wanneer je het volgende probeert dan heb je het mis want op die manier zal er niet correct worden rekening gehouden worden met de tijdzone.
$timestamp strtotime($node->field_date[0]['value']);
?>

Meer over tijd formaten omzetten in de date.api.inc file of date_convert functie.

Waarom is dit belangrijk? Wanneer je code van de ene server naar de andere verzet en deze bevinden zich in verschillende tijdzones dan zullen de tijden op je site niet correct worden weergegeven wanneer je niet de correcte functies gebruikte. Weergave is misschien niet zo belangrijk maar wanneer er logica aan vasthangt zoals bvb je mag een bepaalde test of wedstrijd niet meer weergeven voor een bepaalde tijd dan kan het zijn dat die pagina te vroeg of te laat ontoegankelijk wordt.

Reactie toevoegen