Hi! Im ZanderStylised (pixellated) picture of Zander, I make web things

Code Notes

JavaScript dates

The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z). Literally speaking the epoch is Unix time 0 (midnight 1/1/1970), but ‘epoch’ is often used as a synonym for Unix time.

Human-readable timeSecondsMilliseconds
1 second11000 ms
1 minute60 s60,000 ms
1 hour3,600 s3,600,000 ms
1 day86,400 s86,400,000 ms
1 week604,800 s604,800,000 ms
1 month2,629,746 s2,629,746,000 ms
1 year31,556,952 s31,556,952,000 ms

Get the current epoch time

The getTime() method returns the time in milliseconds.

Math.floor(new Date().getTime() / 1000.0) // 1676457318

Convert from epoch to human-readable date

const date = new Date(1676457318 * 1000) // Wed Feb 15 2023 10:35:18 GMT+0000 (Greenwich Mean Time)

Date methods

date.toDateString() // 'Wed Feb 15 2023'
date.toJSON() // '2023-02-15T10:35:18.000Z'
date.toUTCString() // 'Wed, 15 Feb 2023 10:35:18 GMT'
date.toLocaleString() // '2/15/2023, 10:35:18 AM'
date.toLocaleTimeString() // '10:35:18 AM'
date.getDate() // 15
date.getTime() // 1676457318000
date.getUTCDay() // 3
date.getMinutes() // 35
date.getHours() // 10
date.getMonth() // 1 - months are zero-indexed
date.getFullYear() // 2023

Formatting with Intl.DateTimeFormat

For more control over date formatting without external libraries:

const date = new Date()

// Basic formatting
new Intl.DateTimeFormat('en-GB').format(date) // '15/02/2023'
new Intl.DateTimeFormat('en-US').format(date) // '2/15/2023'

// With options
new Intl.DateTimeFormat('en-US', {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric',
}).format(date) // 'Wednesday, February 15, 2023'

// Relative time
const rtf = new Intl.RelativeTimeFormat('en', { numeric: 'auto' })
rtf.format(-1, 'day') // 'yesterday'
rtf.format(2, 'hour') // 'in 2 hours'

Date.now() shorthand

Date.now() // 1676457318000 (current timestamp in ms)

ISO string parsing

new Date('2023-02-15T10:35:18.000Z') // Parses ISO 8601 format