IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[PHP-JS] Conversion fonction de temps PHP vers javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut [PHP-JS] Conversion fonction de temps PHP vers javascript
    Salut, tout est dans le titre je ne comprend pas pourquoi ma fonction écrite en php ne retourne pas le même résultat que son équivalent JS.

    Voici les codes respectifs :

    PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function DiffHeure($tempsDeb, $tempsFin)
      {
        //-- calcul en heures et centièmes -----------
        $ecart = 0;
        if($tempsDeb > $tempsFin)
        {
          //-- calcul écart entre début et minuit ----------
          $ecart += 24 - $tempsDeb;
          //-- ajoute le temps après minuit ---------
          $ecart += $tempsFin;
        }
        else if($tempsDeb < $tempsFin)
        {
          $ecart += $tempsFin - $tempsDeb;
        }
     
        return $ecart;
      }
    JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function DiffHeure(tempsDeb, tempsFin)
      {
        //-- calcul en heures et centièmes -----------
        ecart = 0;
        if(tempsDeb > tempsFin)
        {
          //-- calcul écart entre début et minuit ----------
          ecart += 24 - tempsDeb;
          //-- ajoute le temps après minuit ---------
          ecart += tempsFin;
        }
        else if(tempsDeb < tempsFin)
        {
          ecart += tempsFin - tempsDeb;
        }
     
        return ecart;
      }
    En test avec DiffHeure(20,2), la fonction php me retourne 6 qui est le résultat que j'attend et la JS me retourne 42...
    Je ne vois pas de problème de syntaxe particulier.

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function DiffHeure(tempsDeb, tempsFin)
      {
        //-- calcul en heures et centièmes -----------
        var ecart = 0;
        if(tempsDeb > tempsFin)
        {
          //-- calcul écart entre début et minuit ----------
          ecart += 24 - tempsDeb;
          //-- ajoute le temps après minuit ---------
          ecart += tempsFin;
        }
        else if(tempsDeb < tempsFin)
        {
          ecart += tempsFin - tempsDeb;
        }
        
        return ecart;
      }
    Pour commencer ^^

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    BAM !

    Je n'avais pas jugé utile de préciser var dans ma fonction, mais ça a l'air ça.

    La variable ne devait pas être globale à la fonction alors si j'ai bien compris.

    [EDIT ] : Non en fait ça ne fonctionne toujours pas.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Installes donc FireBug, il te sera d'une aide précieuse !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    J'ai, et aucun bug de syntaxe de ce coté là.

    Par contre quelque chose d'étonnant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          //-- calcul écart entre début et minuit ----------
          ecart += 24 - tempsDeb;
          //-- ajoute le temps après minuit ---------
    	  alert("TempsFin="+tempsFin+" + TempsEcart="+ecart);
          ecart = tempsFin + ecart;
    	  alert(ecart);
    Le premier alert me donne TempsFin=2 + TempsEcart=4
    et le second me donne 24 au lieu de 6 normalement calculé

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    En fait l'opérateur += me concatène mes 2 variables au lieu d'en faire la somme ...

    et je dois utiliser parseInt donc ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          ecart += parseInt(tempsFin);
    c'est mieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion d'un code python vers du PHP
    Par coolhands dans le forum Langage
    Réponses: 12
    Dernier message: 09/11/2014, 09h38
  2. [MySQL] Conversion automatique en float mysql vers php et vice versa
    Par xounet dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/04/2014, 14h21
  3. [Oracle] Commandes php-Oracle (conversion de msql vers oracle)
    Par loviso dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/11/2012, 17h09
  4. conversion fonction asp vers php 5
    Par baderahmed dans le forum ASP
    Réponses: 0
    Dernier message: 18/01/2011, 16h32
  5. [PHP-JS] Arguments PHP d'une fonction javascript
    Par Néo-Tony dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2004, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo