[PHP] Alternative zu strtotime()

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Ich suche eine Alternative zu strtotime().
Ich möchte aus einem Datum der Form YYYY-MM-DD hh:mm:ss einen Unix-Zeitstempel machen.
Nun wollte ich dafür die Funktion strtotime() benutzen. Es funktioniert, aber ich bekomme folgende Fehlermeldung angezeigt:
Strict Standards: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in x on line x
Gibt's eine andere Möglichkeit, ein Datum der Form YYYY-MM-DD hh:mm:ss in einen Unix-Zeitstempel umzuwandeln?




EDIT:
Ich habe nun die strtotime() durch eine selbstgeschriebene ersetzt

PHP:
function datetime2timestamp($datetime)
{
    $datetime = explode(' ', $datetime);
    $date     = explode('-', $datetime[0]);
    $time     = explode(':', $datetime[1]);
    return mktime($time[0], $time[1], $time[2], $date[1], $date[2], $date[0]);
}

Jetzt kommt aber schon wieder der selbe Fehler. Es wäre nicht sicher sich auf die Zeitzoneneinstellungen des Systems zu verlassen...
Gibt's denn keine eine Funktion, die problemlos einen einfachen Timestamp ermitteln kann?
 
Zuletzt bearbeitet:
Es funktioniert, aber ich bekomme folgende Fehlermeldung angezeigt:
Wieso sorgst du nicht einfach dafür, dass die Fehlermeldung nicht mehr kommt? Wie du den Fehler löst, steht doch komplett dabei ...

Ab PHP5 ist es neu, dass man die Zeitzone vorher angeben sollte, z.B.:

PHP:
<?php
date_default_timezone_set('Europe/Berlin');
?>

Fertig ... und schon kannst du beruhigt alle Zeitfunktionen nutzen. ;)
 
Danke. Nun ja, steht komplett dabei... Ich finde die Fehlermeldungen stellenweise recht knapp. Habe jetzt im Manual eine entsprechende Stelle gefunden, die es genauso erklärt, wie du es getan hast. Die stand nur leider nicht bei den Datetime-Funktionen dabei, die ich mir angeguckt hab...

Since PHP 5.1.0 (when the date/time functions were rewritten), every call to a date/time function will generate a E_NOTICE if the timezone isn't valid, and/or a E_STRICT message if using the system settings or the TZ environment variable.
 
Zurück
Oben