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 :

Comparaison de deux dates - Javascript et localStorage


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comparaison de deux dates - Javascript et localStorage
    Bonjour à tous,

    Je chercher créer pour une webapp un script pour afficher ou non une notification si la date actuelle est supérieur à la date de première ouverture de l'app.
    La condition que j'aimerais c'est today+5jours mais pour tester j'utilise today+1minute.

    Voilà le code que j'ai fait pour l'instant, à priori ce qui bloque c'est mon (todayLog > notifFive) et je ne comprends pas pourquoi.
    Ma configuration c'est un fichier notifications.js appelé en fin de </body> dans mon doc. Voilà mon 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
    29
    30
    31
     
    // Vérifier si 'firstLog' est déjà dans localStorage
    var firstLog = localStorage.getItem('firstLog');
    // Créer 'todayLog' dans localStorage avec la date du jour
    var todayLog = localStorage.setItem('todayLog', new Date());
     
    // Fonction pour ajouter du temps
    function dateAdd(date, units) {
        var ret = new Date(date);
        //ret.setDate(ret.getDate() + units); // ajouter jours
        ret.setMinutes(ret.getMinutes() + units); // ajouter minutes
        return ret;
    }
    // Création de la variable 'notifFive' pour ajouter du temps à 'firstLog' avec la fonction 'dateAdd'
    // Puis ajout de 'notifFive' au localStorage
    var notifFive = dateAdd(firstLog, 1);
    	notifFive = localStorage.setItem('notifFive', notifFive);
     
    // Si firstLog n'existe pas, le créer et l'enregistrer
    if (firstLog == null) {
        localStorage.setItem('firstLog', new Date());
    } else {
    	if (todayLog > notifFive) {
    	    document.getElementById("notif5").style.display = 'block',
    	    localStorage.setItem('notification', 'Show notification');
        } else {
    		// Sinon masquer notification et afficher Hide notification
    	    document.getElementById("notif5").style.display = 'none',
    	    localStorage.setItem('notification', 'Hide notification');
        }
    }
    Si vous avez des idées ? Merci !

  2. #2
    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 : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Ne pas confondre getItem avec setItem !

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    // Fonction pour ajouter du temps
    function dateAdd( date, units ){
      let ret = new Date( date );
     
    	//ret.setDate(ret.getDate() + units); // ajouter jours
     
    	ret.setMinutes( ret.getMinutes() + units); // ajouter minutes
     
    	return ret;
    }
     
    // Vérifier si 'firstLog' est déjà dans localStorage
    const firstLog = localStorage.getItem('firstLog');
     
    // Créer 'todayLog' dans localStorage avec la date du jour
    localStorage.setItem('todayLog', new Date());
     
    const todayLog = localStorage.getItem('todayLog' );
     
    // Création de la variable 'notifFive' pour ajouter du temps à 'firstLog' avec la fonction 'dateAdd'
    // Puis ajout de 'notifFive' au localStorage
    let notifFive = dateAdd( firstLog, 1 );
     
    localStorage.setItem( 'notifFive', notifFive );
     
    notifFive = localStorage.getItem( 'notifFive' );
     
    let notification = "";
     
    // Si firstLog n'existe pas, le créer et l'enregistrer
    if ( firstLog == null ){
    	localStorage.setItem( 'firstLog', new Date() );
    } else {
    	if ( todayLog > notifFive ){
    		localStorage.setItem( 'notification', 'Show notification' );
     
    		notification = localStorage.getItem( 'notification' );
    	} else {
    		localStorage.setItem( 'notification', 'Hide notification' );
     
    		notification = localStorage.getItem( 'notification' );
    	}
     
    	console.log( "firstLog = ", firstLog );
    	console.log( "todayLog = ", todayLog );
    	console.log( "notifFive = ", notifFive );
    	console.log( "notification = ", notification );
    }

    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.)

Discussions similaires

  1. [MySQL] comparaison de deux dates dans un ordre sql
    Par opeo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/03/2007, 15h34
  2. comparaison de deux dates
    Par gloglo dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 16/01/2007, 14h39
  3. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 12h16
  4. comparaison de deux dates
    Par colombe dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/07/2006, 19h44
  5. [VB6] Comparaison de deux dates dans une requête
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2006, 20h45

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