エラーを返す単純な関数があります:
エラー:date.toLocaleDateStringは関数ではありません
_TypeError: date.toLocaleDateString is not a function
at FormatTime (../Src/rootdialog.js:87:58)
_
関数定義:
_function FormatTime(time, prefix = "") {
var date = Date.parse(time);
return ((typeof time != "undefined") ? prefix + date.toLocaleDateString() : "");
}
_
関数は入力としてDate
オブジェクトを受け取りますが、Date.parse()
を使用してDate
に明示的に変換しても、役に立ちません。 Node.js 8.xを使用します。解決策はありますか?
P.S。問題の原因は BotBuilderアーキテクチャ でした。
_Date.parse
_ は数値を返します。 _new Date
_ を探しています。または、time
がすでにDateインスタンスである場合は、time.toLocaleDateString()
を使用するだけです(そして、それが関数のすべての呼び出しに含まれていることを確認してください)。
_function formatTime(time, prefix = "") {
return typeof time == "object" ? prefix + time.toLocaleDateString() : "";
}
_
Date.parse(time)
呼び出しの結果としてNaN
を取得している可能性があります。 Date.parse のMDN記事で、時間引数が有効であると思われる場合に受け入れる入力文字列のタイプを確認してください。
単に未定義ではなく、失敗した解析をチェックするようにreturnステートメントを変更することができます。例:
function FormatTime(time, prefix = "") {
var date = Date.parse(time); // returns NaN if it can't parse
return Number.isNaN(date) ? "" : prefix + date.toLocaleDateString();
}