Zeitzone mit Sommerzeit-handling von PHP

Arbeite ich an einem Kalender-Anwendung. In diesem werden die Benutzer aus verschiedenen Zeit-Zonen erstellen/anzeigen Veranstaltungen.
Ich denke da an Folgen Sie der unten Methode zum speichern von Ereignis-Zeit in UTC-Zeit und zeigt Sie in Ihrer lokalen Zeit. Hinweis: der Benutzer hat Ihre bevorzugte Zeitzone-Einstellung.

Zu speichern event starten Zeit als UTC timestamp:

$timezone = new DateTimeZone( $user_timezone_name );
$utcOffset = $timezone->getOffset( new DateTime( $event_start_time_string_local ) );
$event_start_timestamp_local = maketime( $event_start_time_string_local );
//Now add/subtract $utcOffset to/from $event_start_timestamp_local to get event's start  //time  timestamp in UTC and save this result in DB.

Zu bekommen event Zeit startet, in der Benutzer-Zeitzone:

date_default_timezone_set( $user_timezone_name );
$eventTimeLocalTime = date("Y-m-d H:i:s", $event_start_timestamp_in_UTC );

Wo:

user_timezone_name is user's timezone setting.
event_start_time_string_local is event's start time string in local/civil time.
event_start_timestamp_in_UTC is event's start time timestamp in UTC.

Meine Fragen:

  • Ob die PHP-APIs verwendet, die oben kümmern sich um die Sommerzeit für alle Regionen?
  • Die Sommerzeit-die Zeit selbst ändert sich in verschiedenen Jahren, wie funktioniert PHP bekommt die Informationen über das? brauchen wir das upgrade PHP? Wenn ja, brauchen wir, um ein upgrade für alle oder bestimmte PHP-Bibliothek?

Referenzen:
- nicht-PHP-Datum-default-timezone-set-einstellen-auf-Sommerzeit
- get-Zeitzonen-offset-für-einer-bestimmten-Position

Schreibe einen Kommentar