Aller au contenu

Herode

Membre
  • Compteur de contenus

    7
  • Inscrit(e) le

  • Dernière visite

Messages postés par Herode

  1. Bonjour à tous. Le but du jeu est simplissime : calculer le nombre de jours entre deux dates. Les objets Date sont construits juste avec les infos year/month/day, le calcul des intervalles de temps inférieurs au jour n'intéresse pas l'application donc pour simplifier, on les met à la même valeur partout.

    Dans ce cadre, voici un petit bout de code de test qui affiche le nombre de jours d'écart :

    function delays() {
    var day = 5;
    var hour = 2;
    var dt1 = new Date(2007, 02, day, hour, 0, 0);
    var dt2 = new Date(2007, 02, day + 20, hour, 0, 0);
    var delay = (dt2.getTime() - dt1.getTime())/(1000*3600*24);
    alert(dt2.toLocaleString() + ' - ' + dt1.toLocaleString() + ' = ' + delay);
    }

    Le calcul marche bien en général : on trouve bien

    dt2 - dt1 = 20

    sauf si dt1 est initialisé entre le 5 mars 2007 à 2h00 et le 25 mars 2007 à 1h00 (je n'ai pas cherché pour les minutes...). Pour ces valeurs de dt1, la différence

    dt2 - dt1 = 19.958333333333332

    Kesako ???? :unsure:

  2. Bonjour à tous... Voici le script qui essaye l'opérateur instanceof :

    function A() {
    this.x = 0;
    this.y = '222';
    this.objDate = new Date();
    this.objB = new B();
    }
    function B() {
    this.bb = 99;
    }
    function dumpObj( obj )
    {
    alert( "dans la fct obj == objet ? " + (obj instanceof Object) );
    for ( att in obj ) alert( att + " == objet ? " + (att instanceof Object) )
    }
    function testJSDebug()
    {
    var obj = new A();
    alert( "avant appel obj == objet ? " + (obj instanceof Object) );
    dumpObj( obj );
    }

    En sortie :

    avant appel obj == objet ? true

    dans la fct obj == objet ? true

    x == objet ? false

    y == objet ? false

    objDate == objet ? false

    objB == objet ? false

    8O En somme, il reconnait l'objet quand on le lui passe tel quel, mais pas quand il est pris comme attribut ?????? 8O

    Ou bien (plus probablement...) j'ai raté un éléphant ?

  3. Bon, je m'auto-réponds :P En fait, la doc répond bien à ma question précédente :

    Notez que les clés sont préservées. array_unique() trie les valeurs traitées comme des chaînes dans un premier temps, puis garde la première clé rencontrée pour chaque valeur et ignore les clés suivantes. Cela ne signifie pas que la clé de la première valeur rencontrée du tableau array non trié sera conservé.

    Ce qui explique la "disparition" de l'index [2] dans mon exemple. La fonction array_unique() interprète bien les tableaux comme des tableaux associatifs.

  4. Ha, bien observé pour l'étoile en [3]. Je ne l'avais pas vu! !

    Deux problèmes qui sont en fait le même. J'avais repéré le message d'erreur dans mes logs, en effet. Je suis incapable de savoir d'où ça vient : count() donne bien 3 postes, [2] undefined et un poste en [3] ?????????? :waco: J'ai contourné le problème en faisant mon dédoublonnage à la main, donc ça n'a rien de vital, mais j'aimerais comprendre... ca ressemble à un effet de bord du array_unique(). Est-ce lié au fait qu'il attendrait exclusivement un tableau associatif et qu'un tableau "normalement" indexé le fait déraper ? La doc ne dit rien là-dessus, en tout cas...

  5. Bonjour à tous !

    Je viens de perdre quelques heures à m'arracher les cheveux sur la disparition d'un poste dans un tableau. Comme je n'arrive pas à trouver mon erreur, voici mon code de test au cas où ça sauterait aux yeux de l'un d'entre vous :

    echo "1.1 - tableau non dédupliqué : <br/>";
    $groupes = split( "!", "Editorial!Dossier!*!*" );
    for ( $j = 0; $j < count( $groupes ); ++ $j ) {
    echo "groupes[ $j ] = ".$groupes[ $j ]."<br>";
    }

    echo "1.2 - tableau dédupliqué : <br/>";
    $groupes = array_unique( $groupes );
    for ( $j = 0; $j < count( $groupes ); ++ $j ) {
    echo "groupes[ $j ] = ".$groupes[ $j ]."<br>";
    }

    echo "2.1 - tableau non dédupliqué : <br/>";
    $groupes = split( "!", "Editorial!Dossier!Dossier!*!*" );
    for ( $j = 0; $j < count( $groupes ); ++ $j ) {
    echo "groupes[ $j ] = ".$groupes[ $j ]."<br>";
    }

    echo "2.2 - tableau dédupliqué : <br/>";
    $groupes = array_unique( $groupes );
    for ( $j = 0; $j < count( $groupes ); ++ $j ) {
    echo "groupes[ $j ] = ".$groupes[ $j ]."<br>";
    }

    Et voici ma sortie html :

    1.1 - tableau non dédupliqué :

    groupes[ 0 ] = Editorial

    groupes[ 1 ] = Dossier

    groupes[ 2 ] = *

    groupes[ 3 ] = *

    1.2 - tableau dédupliqué :

    groupes[ 0 ] = Editorial

    groupes[ 1 ] = Dossier

    groupes[ 2 ] = *

    2.1 - tableau non dédupliqué :

    groupes[ 0 ] = Editorial

    groupes[ 1 ] = Dossier

    groupes[ 2 ] = Dossier

    groupes[ 3 ] = *

    groupes[ 4 ] = *

    2.2 - tableau dédupliqué :

    groupes[ 0 ] = Editorial

    groupes[ 1 ] = Dossier

    groupes[ 2 ] =

    Quelqu'un peut-il me dire où est l'éléphant ?????? :unsure:

    NB : J'oubliais un détail amusant : ajouter à la fin du code PHP :

    echo "2.3 - mais si on passe par join() : <br/>";
    echo join( $groupes, "," );

    donne comme sortie supplémentaire :

    2.3 - mais si on passe par join() :

    Editorial,Dossier,*

    La petite étoile est de retour :1eye:

  6. Bonjour,

    N'importe quel hébergeur peut héberger un site comme celui que tu décrit.

    Si tu ne veux pas développer ou faire développer un site sur mesure :

    - Les gestionnaires de blog existent : Dot.Clear, Nucleus, TextPattern, etc... Il "suffit" de les installer sur ton site et de les paramétrer.

    - Les outils de gestion de contenu existent : Joomla, Mambo, SPIP, NPDS, Xoops, etc... Il "suffit" de les installer sur ton site et de les paramétrer.

    etc...

    Certains hébergeurs (Celeonet, etc...) fournissent des scripts permettant d'installer tout ça directement. Tous les hébergeurs ont plusieurs offres selon la taille et les besoins techniques du site.

×
×
  • Créer...