how do I format a javascript date like ISO format, but in local time?
with myDate.toISOString()
I am getting the time as: \"2012-09-13T19:12:23.826Z\">
Another method is to define a prototype on the Date object:
Date.prototype.toLocaleISOString = function() {
const zOffsetMs = this.getTimezoneOffset() * 60 * 1000;
const localTimeMs = this - zOffsetMs;
const date = new Date(localTimeMs);
const utcOffsetHr = this.getTimezoneOffset() / 60;
const utcOffsetSign = utcOffsetHr <= 0 ? '+' : '-';
const utcOffsetString = utcOffsetSign + (utcOffsetHr.toString.length == 1 ? `0${utcOffsetHr}` : `${utcOffsetHr}`) + ':00';
return date.toISOString().replace('Z', utcOffsetString);
};
And using it is as simple as:
const date = new Date();
console.log(date.toLocaleISOString());
// Output: 2020-08-04T14:52:38.613-07:00