Borislav Hadzhiev
Wed Oct 20 2021·2 min read
Photo by Joe Yates
The "toUTCString is not a function" error occurs when the toUTCString()
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 toUTCString()
method on valid date objects.
Here is an example of how the error occurs.
const d = Date.now(); console.log(d); // 👉️ 1639.... // ⛔️ TypeError: toUTCString is not a function const result = d.toUTCString();
We called the Date.now()
function, which returns an integer and tried to call
the
Date.toUTCString()
method on it, which caused the error.
To solve the error, make sure to only call the toUTCString()
method on valid
date objects.
const d1 = new Date().toUTCString(); console.log(d1); const d2 = new Date('Sept 24, 22 13:20:18').toUTCString(); console.log(d2); // 👉️ Sat, Sep 24 2022 10:20:18 GMT
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.
const d1 = new Date('invalid').toUTCString(); console.log(d1); // 👉️ "Invalid Date"
You can console.log
the value you are calling the toUTCString
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.
const d1 = new Date(); if (typeof d1 === 'object' && d1 !== null && 'toUTCString' in d1) { const result = d1.toUTCString(); 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.
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
.
toUTCString
property.Then we know we can safely call the toUTCString
method on the object.