Javascript date format like ISO but local

No library required! For some Date object, e.g. t = new Date()

  • convert the local time zone offset from minutes to milliseconds

    z = t.getTimezoneOffset() * 60 * 1000

  • subtract the offset from t

    tLocal = t-z

  • create shifted Date object

    tLocal = new Date(tLocal)

  • convert to ISO format string

    iso = tLocal.toISOString()

  • drop the milliseconds and zone

    iso = iso.split(".")[0]

  • replace the ugly ‘T’ with a space

    iso = iso.replace('T', ' ')

Result is a nice ISO-ish format date-time string like “2018-08-01 22:45:50” in the local time zone.

Leave a Comment