Juste tombé sur ce bug étrange avec l'objet DateTime de php ... Check this out:php DateTime objet avec horodatage unix incorrect - bug?
<?php
$date = 1335823200;
echo date('d',$date);
echo '<br />';
$date = new DateTime("@$date");
echo $date->format('d');
?>
Retours:
06
05
Il ne se produit pas avec un horodatage. Je pense que cela a quelque chose à voir avec des fuseaux horaires différents, mais jouer avec setlocale() n'a rien arrangé. Par ailleurs, le '@' dans DateTime est nécessaire pour pouvoir utiliser les horodatages unix (voir le rapport de bug here). Voici quelques horodatages à tester:
1333663200
1338588000
1338847200
Merde, je pensais que les deux utiliseraient simplement les paramètres de la même source. Savez-vous si je peux globalement définir une valeur par défaut pour DateTime (avant d'instanciation)? – Anonymous
@danontheline: manuel dit que php * devrait * utiliser le fuseau horaire par défaut, mais en fait sur mon php 5.2 ce n'est pas correct. Probablement il a été corrigé en 5.3 – zerkms