converteer een RFC3339 timestamp naar een PHP timestamp

Een RFC3339 timestamp wordt veel gebruikt in XML feeds. Zo wordt deze onder andere gebruikt bij RSS feeds. Ook gebruikt Google deze ook wanneer er gebruik wordt gemaakt van hun API's, bijvoorbeeld voor de Google Calendar service. Een RFC33339 timestamp is als volgt opgebouwd:

2010-12-31T14:14:38:00.000+02:00

Wanneer dat vertaalt wordt naar maanden, dagen, jaren en uren ziet het er als volgt uit:

YYYY-MM-DDTHH:II:SS:00.000+02:00
  • YYYY = Jaar
  • MM = Maand
  • DD = Dag
  • HH = Uur
  • II = Minuten
  • SS = Seconden
  • +02:00 = De tijdzone die van toepassing is.

Het vertalen van een dergelijke timestamp kan een best lastige klus zijn. Daarom heb ik deze functie geschreven waarmee dit eenvoudig te converteren is.

  1. // De waarde die deze functie teruggeeft kan naar een leesbaar formaat worden omgezet met behulp van de PHP functie date
  2. function convert_RFC3339_to_timestamp($RFC3339_date) {
  3.         list($year, $month, $day, $hour, $minute, $seconds) = split('[T.:-]', $RFC3339_date);
  4.         return mktime($hour, $minute, $second, $month, $day, $year);
  5. }

Voorbeeld

  1. echo date('d-m-Y', convert_RFC3339_to_timestamp('2010-12-31T14:14:38:00.000+02:00'));
  2.  
  3. // Output: 31-12-2010