Avoir une fonction simple qui renvoie une erreur:
ERREUR: date.toLocaleDateString n'est pas une fonction
TypeError: date.toLocaleDateString is not a function
at FormatTime (../Src/rootdialog.js:87:58)
Définition de fonction:
function FormatTime(time, prefix = "") {
var date = Date.parse(time);
return ((typeof time != "undefined") ? prefix + date.toLocaleDateString() : "");
}
La fonction reçoit Date
objet en entrée, mais même une conversion explicite en Date
avec Date.parse()
n'aide pas. Utilisation de Node.js 8.x. Toute solution?
P.S. Le problème a été causé par architecture BotBuilder .
Date.parse
renvoie un nombre. Vous recherchez new Date
. Ou, si time
est déjà une instance de Date, utilisez simplement time.toLocaleDateString()
(et assurez-vous que c'est vraiment dans chaque appel à la fonction)!
function formatTime(time, prefix = "") {
return typeof time == "object" ? prefix + time.toLocaleDateString() : "";
}
Vous obtenez très probablement NaN
à la suite de votre appel à Date.parse(time)
. Consultez l'article MDN sur Date.parse pour les types de chaînes d'entrée qu'il accepte si vous pensez que votre argument de temps doit être valide.
Vous souhaiterez peut-être modifier votre déclaration de retour afin qu'elle vérifie les analyses échouées au lieu d'être simplement indéfinies, par exemple:
function FormatTime(time, prefix = "") {
var date = Date.parse(time); // returns NaN if it can't parse
return Number.isNaN(date) ? "" : prefix + date.toLocaleDateString();
}