fuseau horaire avec l'heure d'été manipulation par PHP

Je suis en train de travailler sur une application de calendrier. Dans ce utilisateurs de différents fuseaux créer/afficher les événements.
Je pense à suivre ci-dessous la méthode pour économiser de l'événement de l'heure UTC et de l'afficher à l'utilisateur, heure locale. Remarque: l'utilisateur a préféré le fuseau horaire.

Pour économiser de l'événement, l'heure de début 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.

Pour obtenir de l'événement heure de début de l'utilisateur fuseau horaire:

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

Où:

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.

Mes questions:

  • Si l'Api PHP utilisé ci-dessus, de prendre soin de l'heure d'été pour toutes les régions?
  • L'heure d'été lui-même des changements dans les différentes années, comment PHP obtient des informations à ce sujet? avons-nous besoin de mise à jour de PHP? Si donc nous n'avons besoin de mettre à niveau ou particulier bibliothèque PHP?

Références:
- n'est-phps-date-par défaut-timezone-set-ajuster-de-lumière-économie
- obtenez-timezone-offset-pour-un-compte tenu de:-emplacement

OriginalL'auteur Krishna Shetty | 2012-12-04