date.toLocaleDateString is not a function

52,491

Solution 1

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() : "";
}

Solution 2

You can use

new Date(date).toLocaleDateString();

Solution 3

Got this error in a React app, solved it like this:

{ (item.created instanceof Date) ? item.created.toLocaleDateString() : new Date(item.created).toLocaleDateString() }
Share:
52,491
Aleksey Kontsevich
Author by

Aleksey Kontsevich

About me on LinkedIn: https://www.linkedin.com/in/akontsevich

Updated on April 22, 2021

Comments

  • Aleksey Kontsevich
    Aleksey Kontsevich about 3 years

    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.