TypeError: toDateString is not a function in JavaScript

avatar

Borislav Hadzhiev

Last updated: Oct 20, 2021

banner

Photo from Unsplash

TypeError: toDateString is not a function in JavaScript #

The "toDateString is not a function" error occurs when the toDateString() method is called on a value that is not a date object. To solve the error, convert the value to a date before calling the method or make sure to only call the toDateString() method on valid date objects.

typeerror todatestring is not a function

Here is an example of how the error occurs.

index.js
const d = Date.now(); console.log(d); // 👉️ 1639.... // ⛔️ TypeError: toDateString is not a function const result = d.toDateString();

We called the Date.now() function, which returns an integer and tried to call the Date.toDateString() method on it, which caused the error.

To solve the error, make sure to only call the toDateString() method on valid date objects.

index.js
const d1 = new Date().toDateString(); console.log(d1); const d2 = new Date('Sept 24, 22 13:20:18').toDateString(); console.log(d2); // 👉️ Sat Sep 24 2022

You can get a date object by passing a valid date to the Date() constructor.

Note that if an invalid date is passed to the Date() constructor, you would get "Invalid date" back.

index.js
const d1 = new Date('invalid').toDateString(); console.log(d1); // 👉️ "Invalid Date"

You can console.log the value you are calling the toDateString method on and see if it's a valid Date object.

You could conditionally check if the value is a Date object in the following way.

index.js
const d1 = new Date(); if (typeof d1 === 'object' && d1 !== null && 'toDateString' in d1) { const result = d1.toDateString(); console.log(result); // 👉️ Thu Dec 16 ... }

Our if condition uses the logical AND (&&) operator, so for the if block to run, all of the conditions have to be met.

We first check if the d1 variable stores a value with a type of object, because dates have a type of object.

Then we check if the variable is not equal to null. Unfortunately, if you check the type of null - console.log(typeof null), you will get an "object" value back, so we have to make sure the value is not null.

The last thing we check for is that the object contains the toDateString property.

Then we know we can safely call the toDateString method on the object.

Conclusion #

The "toDateString is not a function" error occurs when the toDateString() method is called on a value that is not a date object. To solve the error, convert the value to a date before calling the method or make sure to only call the toDateString() method on valid date objects.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.