2
votes

La valeur de la date renvoie toujours NaN

Je souhaite avoir une variable dont la date actuelle est au format «AAAA-MM-JJ» en Javascript. Mais quand j'exécute mon code et le vérifie dans le console.log. Il dit simplement NaN

var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
console.log("the date format here is ", + date);

Le console.log affiche la sortie comme "le format de date ici est NaN"

Quelqu'un peut-il dire ce qui ne va pas ici?


1 commentaires

date est une chaîne comme "2019-05-17" ... + "2019-05-17" n'est pas un nombre


4 Réponses :


6
votes

C'est juste:

console.log(`the date format here is ${date}`);

Il n'y a pas besoin de '+'

Si vous envisagez d'utiliser la concaténation de chaînes en utilisant l'opérateur plus, + , la bonne syntaxe serait

console.log('the date format here is ' + date);

Cependant, en ce qui concerne le scénario auquel vous êtes confronté, je préférerais personnellement littéraux de modèle .

console.log('the date format here is ', date);

p >


1 commentaires

@ObitoUchiha Vous êtes les bienvenus! J'ai inclus d'autres façons possibles d'obtenir le résultat souhaité!



1
votes

Vous utilisez à la fois un opérateur virgule (pour la séparation des arguments) et un opérateur plus. Utilisez l'un:

console.log("the date format here is ", date);

Ou l'autre:

console.log("the date format here is " + date);


4 commentaires

"Vous utilisez à la fois un opérateur virgule et un opérateur plus" . L'opérateur virgule est utilisé entre les expressions et renvoie le dernier opérande. Mais ici, il n'y a pas d'opérateur virgule. C'est juste une syntaxe de passage d'un argument à une fonction


Regardez le code de l'OP @MaheerAli - il y a une virgule et un plus, ce qui est une syntaxe invalide.


Oui, mais cette virgule n'est pas un opérateur de virgule.


Je ne pense pas qu'une virgule soit jamais un opérateur. C'est un ponctuateur qui sépare les éléments (identificateurs ou expressions) dans une liste. Dans ce cas, une liste de paramètres qui est passée à une fonction ( console.log ) et devient une liste d'arguments.



1
votes

Le problème est de passer les paramètres à console.log () . Vous passez deux arguments à la fonction et essayez de convertir le second qui est date en Number en utilisant Unary Plus +

var today = new Date();

 var date = ['getFullYear','getMonth','getDate'].map(x => today[x]()).join('-')
 console.log("the date format here is " + date);


0 commentaires

1
votes

supprimez le signe + ou le, de son mauvais

  var today = new Date();
    var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
    console.log("the date format here is ",  date);

Voici le bon

console.log("the date format here is ", + date);

 entrez la description de l'image ici


0 commentaires