PB dans la gestion des dates

Fermé
mario90 Messages postés 29 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 18 septembre 2014 - 17 sept. 2014 à 15:50
 Utilisateur anonyme - 18 sept. 2014 à 15:15
Bonjour,

je débute en PHP/MySQL en créant un site perso. Dans ce site, je suis amené à travailler avec des dates (comme dans la plupart des sites ;-) et je rencontre un pb avec ceci.

Voici le bout de mon code :
______________________________
$Vdtessai = new DateTime();
$Vdtessai->setDate(2015,08,25);
$Vdtessai->setTime(20,45);


$V_DateJ1=$Vdtessai->getTimestamp();

echo "V_DateJ1 : ".$V_DateJ1;
________________________________

Dans ce code, on voit que je force ma date au 25/08/2015 à 20h45
Or, lorsque que j'affiche ma variable, la valeur affichée est '1419540300', ce qui correspond au 25/12/2014 à 21h45.

Pouvez-vous m'expliquer ce décalage ?

Où est mon erreur ?

Merci par avance

_______________
J'utilise Windows 7/Notepad++ pour le code/ WAMP(serveru) / Chrome comme navigateur
A voir également:

4 réponses

Bonjour

08, c'est très mal. En PHP, un nombre qui commence par 0 est supposé être en octal. Donc pas de chiffre 8. Gros défaut de PHP, il s'arrête au premier 8 ou 9 rencontré et ne s'occupe pas du reste, sans signaler d'erreur.
Bref, ton 2015/08/25 est assimilé à 2015/0/25 qui est lui-même assimilé (par setDate) à 2014/12/25 (1 mois avant le 2015/1/25, normal, non ?)
Enlève le 0 avant le 8, tu verras.
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
Modifié par Pitet le 17/09/2014 à 16:10
Salut,

Le problème vient de la façon dont tu écris les entiers : en commençant ton nombre avec un 0, tu utilises la notation octale (https://www.php.net/manual/fr/language.types.integer.php

$Vdtessai->setDate(2015, 8, 25); // retourne la bonne date


Bonne journée
1
mario90 Messages postés 29 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 18 septembre 2014 7
18 sept. 2014 à 14:57
Super, ça marche ! Merci beaucoup

Par contre au niveau de l'heure, il m'indique 22:45 au lieu de 20:45.

Y a-t-il un pb avec les fuseaux horaires ?

Merci

--
0
Utilisateur anonyme
18 sept. 2014 à 15:15
Probablement un problème de fuseau horaire en effet. As-tu initialisé le fuseau horaire avec setTimezone ? Et si tu manipules aussi ton timestamp au niveau de mysql, il y a probablement également quelque chose à configurer, mais je ne connais pas par cœur, il faudrait lire la doc.
0