PHP konvertiert die UTC-Zeit in die lokale Zeit

7

Wenn ich eine UTC-Zeit von meinem Server bekomme, wie das folgende Format, muss ich die UTC-Zeit in Ortszeit umwandeln. So können Benutzer eine benutzerfreundliche Zeit in ihrem Browser basierend auf ihrer Zeitzone sehen. Bitte helfen Sie mir, dieses Problem zu lösen. Danke

%Vor%

Ich habe einige Methoden ausprobiert, aber in meinem Fall nicht funktioniert

Zuerst

%Vor%

Zweite

%Vor%     
Dibish 29.05.2014, 05:25
quelle

7 Antworten

10

Der Grund, warum Ihr Code nicht funktioniert, liegt wahrscheinlich daran, dass Ihr Server in UTC-Zeit ist. Also ist die lokale Zeit des Servers UTC.

Lösung # 1

Eine mögliche Lösung besteht darin, die folgende Serverseite auszuführen und die Epoch-Ganzzahl an den Browser zu übergeben:

%Vor%

Verwenden Sie anschließend JavaScript, um die Epoch-Ganzzahl in die lokale Zeit des Benutzers zu konvertieren (der Browser kennt die Zeitzone des Benutzers).

Lösung # 2

Sie können den Browser dazu bringen, Ihnen die Zeitzone des Benutzers zu senden. Dann können Sie diese Informationen verwenden, um die Datumsstringserverseite anstelle der Browserseite zu berechnen. Sehen Sie mehr hier: Ссылка

Dies gibt Ihnen den Offset des Benutzers (-7 Stunden). Sie können diese Informationen verwenden, um die Zeitzone einzustellen, indem Sie hier nachsehen: UTC-Offset in Zeitzone umrechnen oder Datum

    
Martin Konecny 29.05.2014, 05:38
quelle
10

Verwenden Sie einfach eine DateTimeZone , zB

%Vor%

Demo ~ Ссылка

    
Phil 29.05.2014 05:36
quelle
2

Senden Sie einfach die UTC-Zeit an den Browser. Verwenden Sie JavaScript, um es mit einem Objekt Date oder mit moment.js zu analysieren, und geben Sie es dann als Text aus.

Wenn Sie dies in clientseitigem JavaScript tun, müssen Sie die Zeitzone des Benutzers nicht kennen. Dafür ist der Browser verantwortlich.

    
Matt Johnson 29.05.2014 06:48
quelle
2

Wenn dies nicht über eine Benutzerprofileinstellung geschieht, ist es wahrscheinlich einfacher und einfacher, eine JavaScript-Zeitbibliothek zu verwenden, z. moment.js ( Ссылка ), um dieses Problem zu lösen (sende alle Daten / Zeiten in UTC und konvertiere sie dann am Client-Ende).

>

Javascript zB (Ich bin mir sicher, dass dies erreicht werden kann, ohne Objekte mit zwei Momenten zu erstellen (behebe das in deiner Freizeit).

%Vor%

php Beispiel für serverseitige Auflösung (verwenden Sie nur eine dieser Lösungen, beide zusammen ergeben eine falsche Zeit auf dem Client-Ende)

%Vor%     
Robin 22.01.2015 19:42
quelle
1
%Vor%

rufen Sie die Funktion auf     cnvt_usrTime_to_UTC ($ dt_start_time_formate, 'UTC');

%Vor%

rufen Sie die Funktion

auf %Vor%     
Divyesh Chothani 28.11.2015 13:08
quelle
0

Verwenden Sie vorher die Funktion date_default_timezone_set Dort möchtest du nach lokaler Zeit wieder UTC Europe/Lisbon timezone einrichten List of Supported Timezones

%Vor%     
Girish 29.05.2014 05:37
quelle
0

Probieren Sie date_default_timezone_set () aus und setzen Sie das Datum entsprechend der Zeitzone

> %Vor%     
Rakesh Sharma 29.05.2014 05:37
quelle

Tags und Links