0
votes

Pourquoi les dates ne sont-elles pas générées correctement?

J'utilise une fonction dans des JS angulaires pour générer les dates de la dernière semaine à partir de la date d'aujourd'hui. Je stocke ces dates dans un tableau puis en utilisant ce tableau pour inonder une liste déroulante. Ce qui suit est le code qui est utilisé par moi.

generate() {
    this.date_new = [];
    var date = new Date();
    var date1 = new Date();
    for (var i = 0; i < 7; i++) {
        date.setDate(date1.getDate() - i);
        var a = date.toString();
        var str = this.convert(a);
        this.date_new.push(str);
    }
}


4 commentaires

Pourriez-vous également partager la fonction ceci.convert () ?


convertir (date) {var str = date.split (""); Retour Str [0] + "" + STR [1] + "+ STR [2] +" "+ STR [3]}


J'ai testé cette fonction.Il ne fonctionne pas pour la date d'aujourd'hui.


En testant, je veux dire le code JavaScript pur, sans aucune idée associée.


3 Réponses :



1
votes

Le problème ici consiste à utiliser la même date la variable code> dans la boucle. Vous devez le réinitialiser.

Comme on peut le voir dans Paramètres Valeur de la valeur forte> dans le Link ici . Valeurs zéro et négative dans setDate () code> définit la date du mois précédent. p>

par conséquent au setDate (0) code>, la valeur de la date est définie sur le dernier jour de février. Depuis que vous utilisez la même variable, setDate (-1) Code> prend le mois précédent à partir de février, vous obtenez Jan Jan. P>

Vous devez modifier le code à quelque chose comme ceci: P>

generate() {
    this.date_new = [];
    var date1 = new Date();
    for (var i = 0; i < 7; i++) {
        // re-initialize date
        var date = new Date();
        date.setDate(date1.getDate() - i);
        var a = date.toString();
        var str = this.convert(a);
        this.date_new.push(str);
    }
}


2 commentaires

Merci à @Rroyson, toutefois une explication à cela pourrait aider.


@Ashutoshkumar J'ai ajouté une brève explication. Si vous pensez qu'il aborde bien votre requête, corrigez la réponse comme acceptée. Merci :)



0
votes

Le problème ici est que les nombres négatifs à l'intérieur de la méthode de SetDate ne fonctionnent pas très bien.

Veuillez mettre à jour le code à quelque chose comme ci-dessous: xxx

espère que cela résoudra votre problème.


0 commentaires