Andreas Görtz: Datum/Zeitformat RFC-822 umwandeln

Beitrag lesen

Hi,

Diese Funktion habe ich schon ausprobiert, sie funktioniert aber nicht richtig.
Überprüfe ich 'Tue, 32 Jul 2004 23:33:60 +0200' gibt mir die Funktionen keinen Fehler aus sondern den Timestamp vom 'Aug 01 2004 23:34:00'.

ja, das habe ich übersehen, da es m.E. keinen wirklichen Fehler darstellt, sondern so gewollt ist - mktime() operiert genauso.

Ich brauche aber eine Möglichkeit die Daten auf gültige Werte zu überprüfen. RegExp scheiden aus, da die Syntax von RFC-822 ziemlich komplex sein kann (habe ich gelesen).

Um o.g. Fehler ebenfalls auszuschließen, könntest du den von strtotime() erhaltenen timestamp wieder in eine RFC-822-Zeichenkette umwandeln und mit der vorherigen vergleichen:

<?php

$rfcTime   = 'Tue, 32 Jul 2004 23:33:60 +0200';
$timestamp = strtotime($rfcTime);
$rfcCheck  = (-1 != $timestamp)
    ? date('r', $timestamp) // $rfcCheck ist nun == 'Sun, 1 Aug 2004 23:34:00 +0200'
    : '';

if ($rfcTime != $rfcCheck)
{
    // Fehler
}

?>

oder so ähnlich...

Gruß,
Andreas.