dato

Datohåndtering i PHP 5.2

Datohåndtering er noe du alltid vil komme borti når du jobber med webutvikling. Tradisjonelt baserer datohåndteringen i PHP seg på bruk av Unix timestamp eller med andre ord antall sekunder siden 1.januar 1970. For å bøte på disse begrensningene har PEAR lenge hatt en egen implementasjon for datohåndtering med pakken PEAR::Date for å kunne manipulere datoer og konvertere mellom tidssoner. Denne implementasjonen er veldig mye brukt og er svært fleksibel, men den kan også ha sine ytelsesmessige konsekvenser i situasjoner der du må håndtere større mengder datoer samtidig da den blant annet benytter seg av miljøvariable via getenv() og putenv() for å håndtere tidssoneinformasjon. Med versjon 5.2 av PHP er datohåndteringen forbedret med introduksjon av en ny DateTime-klasse.

Her er et kort eksempel på hvordan du kan bruke den nye DateTime-klassen:

<?php
// Vis UTC tid akkurat nå
$now = new DateTime('now', new DateTimeZone('UTC'));
var_dump($now->format(DATE_ATOM));

// Konverter tiden til vår tidssone
$now->setTimezone(new DateTimeZone('Europe/Oslo'));
var_dump($now->format(DATE_ATOM));
?>

DateTime::format() bruker det samme formatet som du kjenner fra date()-funksjonen.

For å sjekke om du har støtte for den nye date-extensionen kan du sjekke phpinfo() eller skrive "php -i | grep date" på kommandolinjen og se om "date/time support" er satt til "enabled".

Syndiker innhold