Frage

YouTube gibt den Updated date und Submitted on Datum wie folgt: 2010-08-22T04:46:18.000Z

Gibt es eine PHP-Funktion oder eine Datumsmaske, dass Parsen das?

War es hilfreich?

Lösung

$dt = DateTime::createFromFormat("Y-m-d\TH:i:s.uP", "2010-08-22T04:46:18.000Z");
var_dump($dt);
// object(DateTime)#1 (3) {
//   ["date"]=>
//   string(26) "2010-08-22 04:46:18.000000"
//   ["timezone_type"]=>
//   int(2)
//   ["timezone"]=>
//   string(1) "Z"
// }

Dies verwendet die DateTime Klasse. Es ist Zeitzone und Sekundenbruchteile bewusst. Um das Datum Verwendung zeigen die format Methode:

echo $dt->format("Y-m-d H:i:s e");
// 2010-08-22 04:46:18 Z

Um das Datum zu lokaler Zeitzone Verwendung konvertiert die setTimezone Verfahren :

$dt->setTimezone(new DateTimeZone(date_default_timezone_get()));
echo $dt->format("Y-m-d H:i:s e");
// 2010-08-21 21:46:18 America/Los_Angeles

Andere Tipps

klingt wie strtotime ist das, was Sie suchen.

EDIT: , wenn dies nicht funktioniert, werfen Sie einen Blick auf die Datum und Klassen Zeit - es gibt Methoden für Termine in bestimmten Formaten ( Beispiel - gibt keinen Zeitstempel direkt, aber wenn Sie einen Datetime aus diesem Konstrukt, können Sie es der getTimestamp -Verfahren)

Versuchen Sie diese:

$date=substr("2010-08-22T04:46:18.000z",0,strlen("2010-08-22T04:46:18.000z")-1);
$stamp=strtotime($date);

Die "z" am Ende scheint das Problem für strtotime zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top