Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
Seyu
#
Citer
54 Posts
Bonjour,

Je suis pour l'instant dans l'incompréhension totale ><
J'utilise une fonction js pour récupérer le stamp d'une date passée en paramètre. Voici le code :


        sdate = '17/03/2012' ; // Date exemple
        var date = new Date(); // Création de l'objet date
    
        date.setFullYear(sdate.substr(6,4));  // Instanciation de l'objet avec la chaine
        
        date.setMonth(sdate.substr(3,2));
        
        date.setDate(sdate.substr(0,2));
        
        date.setHours(0);
        
        date.setMinutes(0);
        
        date.setSeconds(0);
        
        date.setMilliseconds(0);
        
        date = (date.getTime() / 1000) ; // Car JS compte en millisecondes
        
        alert(date);


° PHP me donne comme résultat avec mktime() : 1331942400
-> Donnant comme date retour avec date() : 17/03/2012 // Donc correct

° JavaScript me donne comme résultat avec ma fc : 1334613600
-> Donnant comme date retour avec date() (php) : 16/04/2012 // Non correct ...

Quelqu'un aurait-il une idée de la raison ? o_O

^
Florian_R
#
Citer
629 Posts
Hello.

Je ne me rappelle plus ce qu'il en est en PHP, mais en JS les mois sont numérotés de 0 à 11.
Donc ton code doit être modifié avec :
date.setMonth(sdate.substr(3,2) - 1)


J'aime bien gagner au ping-pong.

^
Seyu
#
Citer
54 Posts
Il doit en être ainsi aussi pour le jour alors, puisqu'il me retourne 16 au lieu de 17 ...
Merci pour ta réponse !
Modifié par Seyu (17 Feb 2012 - 10:53)

^
Florian_R
#
Citer
629 Posts
Pas pour le jour, le 16 au lieu de 17 est dû à la différence de jour entre chaque mois. Pour rappel, la doc de l'objet Date sur MDN.

J'aime bien gagner au ping-pong.

^
Seyu
#
Citer
54 Posts
Parce que du coup mon ajax envoie à mon script une date incorrecte, qui l'enregistre à un mois de décalage dans la base, donc vraiment pas cool ...

Il faudrait que je rajoute 1 au mois lors de l'envoi du paramètre ...

^
Florian_R
#
Citer
629 Posts
Pour ce genre de chose, j'ai tendance à préférer le traitement côté PHP, comme ça le codage / décodage se fait dans le même langage. Sinon, dans mon post précédent j'ai fait une coquille, il faut ajouter 1, et non pas retrancher 1.

J'aime bien gagner au ping-pong.

^
Seyu
#
Citer
54 Posts
J'ai effectivement simplifié la chose en utilisant la fonction que côté php lors de la requête sql x)

^