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 :

Compteur de date / date d�pass�e depuis X jours


Sujet :

JavaScript

  1. #1
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut Compteur de date / date d�pass�e depuis X jours
    Bonjour � tous,

    Je travail dans une grande surface et suite � la mise � jour du logiciel d��tiquetage (affichage des prix/r�f produit etc sur les �tiquettes num�riques) j'aurai besoin de faire un script en JavaScript.
    Je suis tout nouveau dans ce monde, j'essaye de m�y mettre pour fluidifier mon propre travail, je d�bute actuellement le dev (vba et js).
    Mon script : En fonction de la date d�entr�e (DATE_ENTREE) d'un produit et de la date du jour (d)je voudrai que lorsque le produit est la depuis 60 ou + de 60 jours, le compteur de jours s'affiche en rouge (FGCOLOR=3).
    J'arrive � faire afficher un result en rouge sous condition mais je n'arrive vraiment pas � faire la partie compteur de jour en fonction de la date d'arriv� et la date actuel.
    J'esp�re avoir �t� compr�hensible.
    Je pense avoir compris la gestion des dates mais je n'arrive pas au script esp�r�...
    Si vous pouvez m'aider dans la "cr�ation" de ce script ou encore me faire comprendre mes erreurs je vous en suit tr�s reconnaissant.

    J'ai essay� avec de multiples codes, ci-joint mon code le plus aboutie � mon avis.
    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
    var result = {
        value: input
    };
    d = new Date();
    var date1 = d.getDate() + 60 + d.getMonth() + 1 + d.getYear() + 1900;
    d1 = date1.substring(10, 12) + '/' + date1.substring(5, 9) + '/' + date1.substring(13);
    d2 = new Date(#DATE_ENTREE #);
    var result = (d1 - d2);
    if (result < 60) {
        return result;;
    } else {
        result.FONTSIZE = 9;
        result.BOLD = true;
        result.FILL = true;
        result.FGCOLOR = 3;
        return result;
    };
    mais aussi avec :

    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
    var result = {
        value: input
    };
    d = new Date();
    d2 = new Date(#DATE_ENTREE #);
    dd = d.substring(10, 12) + '/' + d.substring(13) + '/' + d.substring(5, 9);
    de = #DATE_ENTREE #.substring(3, 5) + '/' + #DATE_ENTREE #.substring(0, 2) + '/' + #DATE_ENTREE #.substring(6);
    var result = (dd - de);
    if (result < 60) {
        return result;
    } else {
        result.FONTSIZE = 9;
        result.BOLD = true;
        result.FILL = true;
        result.FGCOLOR = 3;
        return result;
    };
    Cdt,
    Un homme bien loin de son domaine de pr�dilection ^^

  2. #2
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut Modification structure date
    J'ai aussi essay� de modifier la structure des dates en YYYY/MM/DD pour pouvoir faire des soustractions mais cela ne donne aucun r�sultat correct.

  3. #3
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    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
    function dhm(ms) {
        let days = Math.floor(ms / (24 * 60 * 60 * 1000));
        let daysms = ms % (24 * 60 * 60 * 1000);
        let hours = Math.floor((daysms) / (60 * 60 * 1000));
        let hoursms = ms % (60 * 60 * 1000);
        let minutes = Math.floor((hoursms) / (60 * 1000));
        let minutesms = ms % (60 * 1000);
        let sec = Math.floor((minutesms) / (1000));
        return days + " jours, " + hours + ":" + minutes + ":" + sec;
    }
     
    let date_entrée = new Date("2019-11-10");
    let date_actuelle = new Date();
     
    console.log("différence entre les dates = ", dhm(date_actuelle - date_entrée));

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut
    Bonjour,
    Merci beaucoup de m'avoir r�pondu !
    D�sol� de te d�ranger avec �a mais peux-tu m'expliquer ton code
    MERCI EN TOUT CAS!

    Car j'ai en donn�e d'entr� une date format DD/MM/YYYY et je n'arrive pas � la transformer avec les substring...
    D'avance merci !

  5. #5
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut
    Alors apr�s adaptation de votre script dans mon cas d'utilisation, voici le r�sultat :
    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
    20
    21
    22
    23
    function dhm(ms) {
        let days = Math.floor(ms / (24 * 60 * 60 * 1000));
        let daysms = ms % (24 * 60 * 60 * 1000);
        let hours = Math.floor((daysms) / (60 * 60 * 1000));
        let hoursms = ms % (60 * 60 * 1000);
        let minutes = Math.floor((hoursms) / (60 * 1000));
        let minutesms = ms % (60 * 1000);
        let sec = Math.floor((minutesms) / (1000));
        return days + " jours, " + hours + ":" + minutes + ":" + sec;
    }
    var date_entrée = new Date(#DATE_ENTREE #);
    var date_actuelle = new Date();
    var date1 = #DATE_ENTREE #.substring(6) + '/' + #DATE_ENTREE #.substring(3, 5) + '/' + #DATE_ENTREE #.substring(0, 2);
    var result = dhm(date_actuelle - date1);
    if (result < 60) {
        return result;
    } else {
        return result;
        result.FONTSIZE = 9;
        result.BOLD = true;
        result.FILL = true;
        result.FGCOLOR = 3;
    };
    ll ne fonctionne pas ...

  6. #6
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    visiblement tu ne comprends pas bien ce que tu fais avec ce code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var result = dhm(date_actuelle - date1);
    if (result < 60) {
        return result;
    } else {
        return result;
        result.FONTSIZE = 9;
        result.BOLD = true;
        result.FILL = true;
        result.FGCOLOR = 3;
    };
    On constate que :
    • ligne #2 tu compares une chaine, par exemple "13 jours, 16:35:10" avec le nombre 60
    • ligne #5 tu fais un return, le return s'utilise dans une fonction et dans ce cas le code qui suit n'est pas exploit�
    • lignes #6#9 tu affectes � l'objet result des propri�t�s aux quelles tu donnes une valeur, je pr�sume que ce n'est absolument pas ce que tu souhaites faire.

    Peux �tre souhaites tu plut�t changer le style d'un champ de ta page !?!

  7. #7
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut
    Merci de ton retour !

    Alors je ne veux pas comparer la "chaine" mais bien le r�sultat de la soustraction des deux dates qui devrai donner un nombre (�cart de jour entre ces deux dates).
    Je vois que c'est pas effectif car il me donne une date actuelle avec avec l'heure et je la compare avec ma variable qui est une date en DD/MM/YYYY.

    Sur ma solution seul le return affiche un r�sultat.

    Si c'est exactement ce que je veux faire car ces variables d�termines la couleurs du result affich� sur ma solution.

    Ma solution est une �tiquette num�rique sur laquelle je souhaite afficher le compteur de jour et que celui-ci devienne rouge quand le compteur d�passe 60 jours.

    Je suis vraiment naze comme padawan d�sol� Encore merci !

  8. #8
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Pour pouvoir t'aider efficacement il nous manque le contexte dans lequel est appel�e ta fonction et les �l�ments HTML que tu utilises.

  9. #9
    Membre habitu�
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2019
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 10
    Par d�faut Enfin !
    J'ai r�ussi � faire fonctionner ce script du d�mon !

    Mon contexte est que je souhaite faire apparaitre un compteur sur des �tiquettes digitales (les m�mes que pour les grande surface qui affichent le prix des produit dans les rayons).
    A l�int�rieur du logiciel de "Template" de ces �tiquettes, on peut ins�rer des script en JS (la version de JS utilis� n'est indiqu� nul part dans les "notices" et le compilateur n'affiche m�me pas les erreurs effectu�es dans le script quand il y en a ....).

    Un compteur qui affiche la diff�rence de jour entre la date d�entr�e
    DATE_ENTREE
    et la date actuel.
    Mais que le compteur devienne rouge lorsque ce nombre de jour de diff�rence est sup�rieur � 60.

    Voici le code :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    // Données d'entrées, on stocke la date d'entrée (censée être au format "dd.mm.yyyy")
    var a = #DATE_ENTREE#;
    // On reforme un string au format "yyyy-mm-dd"
    var arr = a.split(".");
    var dd = arr[0];
    var mm = arr[1];
    var yyyy = arr[2];
    var strConcat = yyyy.concat('-',mm,'-',dd);
    // On fait parser la date par l'objet Date
    var dateParsee = Date.parse(strConcat);
    // On initialise un objet date
    var now = new Date();
    var diffDays={value: input};
    var diffTime = Math.abs(now - dateParsee);
    var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
    var result = {
    	value : diffDays.toFixed(0),
    	BOLD : true
    };
     
    if (diffDays > 60){
    	result.FILL=true;
    	result.FONTSIZE=12;
    	result.FGCOLOR=3;
    }
     
    return(result);

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Date derniere mise à jour - apt
    Par byloute dans le forum Debian
    R�ponses: 6
    Dernier message: 09/09/2021, 12h10
  2. [MySQL] Nbre de jours entre deux dates import�es depuis la base de donn�es
    Par Devil7 dans le forum PHP & Base de donn�es
    R�ponses: 6
    Dernier message: 02/04/2019, 16h34
  3. R�ponses: 1
    Dernier message: 25/11/2005, 11h43
  4. [Dates] comment r�cup�rer le jour de la semaine ?
    Par magic8392 dans le forum Langage
    R�ponses: 5
    Dernier message: 13/09/2005, 15h01
  5. requette where date="moins de 2 jours"
    Par nmerydem dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 18/05/2004, 16h58

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