Zeitzone mit DST-Behandlung von PHP

Ich arbeite an einer Kalenderanwendung. In diesem Bereich können Benutzer aus verschiedenen Zeitzonen Ereignisse erstellen / anzeigen. Ich denke, die folgende Methode zu befolgen, um Ereigniszeit in UTC zu speichern und sie in der Ortszeit des Benutzers anzuzeigen. Hinweis: Der Benutzer hat seine bevorzugte Zeitzoneneinstellung.

So speichern Sie die Startzeit des Ereignisses als UTC-Zeitstempel:

$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.

So ermitteln Sie die Startzeit des Ereignisses in der Zeitzone des Benutzers:

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

Woher:

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 oben verwendeten PHP-APIs die Sommerzeit für alle Regionen berücksichtigen?Die DST-Zeit selbst ändert sich in verschiedenen Jahren. Wie erhält PHP Informationen dazu? Müssen wir PHP aktualisieren? Wenn ja, müssen wir alle oder bestimmte PHP-Bibliotheken aktualisieren?

Verweise: -Tut-PHP-Datum-Standard-Zeitzone-Set-Anpassen-auf-Sommerzeit - get-timezone-offset-for-a-given-location

Antworten auf die Frage(2)

Ihre Antwort auf die Frage