Frage

Es scheint, gibt es viele Möglichkeiten, Datum und Zeit Massieren in PHP zu nähern. Ich bin in der Regel nur mit Ortszeit jeden Umgang. Heute muss ich in UTC arbeiten.

ich gegen eine API bin Abfragen, die Daten, die sie geben mir eine beliebige Datensatz ist: erstellt: Do, 18. Juni 2009 21.44.49 +0000 * Als 'UTC Rekord Erstellungszeit'

Dokumentieren

UTC_Offset: -28.800 * Differenz zwischen den Benutzern wieder

Ich brauche, dass auf eine einfache Zeichenfolge konvertieren den Benutzer zu zeigen, welche Zeit und Datum der Daten in ihrer Ortszeit vorgelegt wurden.

Ich glaube, die oben übersetzt, wenn in Kalifornien zum Beispiel.: Donnerstag 18. Juni 2009 14.44.49

Mein Ziel ist es, einen Zeitwert erreiche ich date () für die einfache Formatierung in einem „ziemlich“ Format passieren kann.

Ist es wirklich so einfach, wie die oben erstellte Zeit Sekunden von Epoche Umwandlung in der Offset-Zugabe, und dann vorbei, dass bis heute ()? Jegliche gothcha der achten?

$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;

echo date(DATE_RFC822, $localized_time);

Danke

War es hilfreich?

Lösung

PHP sollte für Sie, was automatisch. Ich kann sehr empfehlen auch stattdessen das Datetime-Objekt verwendet wird.

$dt = new DateTime($created_time); echo $dt->format(DATE_RFC2822);

PHP Datum und Uhrzeit Funktionen sind Zeitzone bewusst .. Achten Sie darauf, auf einer aktuellen Version von PHP sind, weil eine Menge Arbeit bei der Verbesserung dieser Systeme erfolgt ist.

Andere Tipps

Sie können mit date_default_timezone_set zwischen Zeitzonen wechseln. In Ihrem Fall würden Sie die Zeitzone Informationen aus dem Profil des Benutzers übergeben. Als Evert empfohlen, wenn Sie PHP verwenden 5> = 5,2, benutzen Sie bitte die erweiterte Datetime Klasse.

<?php
echo date('h:i:s')."\n";
date_default_timezone_set('Europe/Paris');
echo date('h:i:s')."\n";
date_Default_timezone_set('UTC');
echo date('h:i:s')."\n";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top