date.toLocaleDateString is not a function

Aleksey Kontsevich picture Aleksey Kontsevich · Aug 17, 2017 · Viewed 29.4k times · Source

Have simple function which returns an error:

ERROR: date.toLocaleDateString is not a function

TypeError: date.toLocaleDateString is not a function
    at FormatTime (../Src/rootdialog.js:87:58)

Function definition:

function FormatTime(time, prefix = "") {
    var date = Date.parse(time);
    return ((typeof time != "undefined") ? prefix + date.toLocaleDateString()  : "");
}

Function receives Date object as input however even explicit conversion to Date with Date.parse() does not help. Using Node.js 8.x. Any solution?

P.S. Issue was caused by BotBuilder architecture.

Answer

Bergi picture Bergi · Aug 17, 2017

Date.parse returns a number. You are looking for new Date. Or, if time already is a Date instance, just use time.toLocaleDateString() (and make sure it really is in every call to the function)!

function formatTime(time, prefix = "") {
    return typeof time == "object" ? prefix + time.toLocaleDateString() : "";
}