Changer de fuseau horaire avec Zend_Date

Logo Zend Framework

Aujourd'hui, j'ai eu besoin de convertir une date exprimée dans le fuseau horaire PST/PDT (Pacific Summer Time/Pacific Daylight Time) au fuseau horaire de Paris. Avec Zend_Date, il suffit de définir le fuseau horaire source avant de régler la date, puis de repasser dans le fuseau horaire désiré :

$date = new Zend_Date();
 
// On règle le fuseau horaire à America/Los_Angeles car PST/PDT n'est pas un format standard
$date->setTimezone('America/Los_Angeles');
 
// On définit une constante pour le format DATETIME de MySQL
define('MYSQL_DATETIME', 'yyyy-MM-dd HH:mm:ss');
 
// On charge la date au format DATETIME de MySQL dans l'objet Zend_Date
$date->set('2009-07-20 00:00:00', MYSQL_DATETIME);
 
// On repasse la date dans le fuseau horaire par défaut 
// défini dans php.ini (Europe/Paris dans mon cas)
$date->setTimezone(null);
 
// Affiche Europe/Paris
echo $date->getTimezone() . "\n";
 
// Affiche 2009-07-20 09:00:00
// 7h de décalage/UTC pour PST/PDT + 2h de décalage/UTC pour Europe/Paris,
// on obtient bien 9h
echo $date->toString(MYSQL_DATETIME) . "\n";
Portrait de Anonyme

Bonjour, merci pour cet

Bonjour,
merci pour cet extrait de code.

2 petites remarques en passant :
(1) 'YYYY-MM-dd HH:mm:ss' => la casse a son importance, par exemple 'yyyy-MM-dd hh:mm:ss' rend les heures de 0 à 12.
(2) Dans une classe, on préférera définir MYSQL_DATETIME en tant que constante de classe et pas en tant que define.

@+

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement. If you have a Gravatar account, used to display your avatar.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].

Plus d'informations sur les options de formatage

CAPTCHA
La vérification ne tient pas compte des minuscules ou des majuscules.
Image CAPTCHA
Enter the characters shown in the image.