date-extras
v1.0.27
Published
An extension to the Date class which adds events, time-adjustments, and other shortcuts.
Downloads
4
Readme
Date Extras
- Extends JavaScript Date Object to include additional features/shortcuts
- Created for a specific project
Installation
Install via NPM
npm install date-extras
Example Usage
Initializing a Date Object
const Date = require('date-extras')
// current date/time (same as standard Date object)
let date = new Date()
// year, month, day, etc. (same as standard Date object)
let date = new Date(2020,1,1)
// datetime string (same as standard Date object)
let date = new Date('Thu Jun 18 2020 14:02:03')
// current date/time with offset
let date = new Date({ days:3, hours:2, minutes:1 })
let date = new Date({ days:-3, hours:-2, minutes:-1 })
Adjusting the Date Object
// adjust date/time
date.adjust({ minutes:-1, seconds:-30 })
date.adjust({ minutes:1, seconds:30 })
// set date/time
date.adjust({ month:1, day:1, hour:12 })
Adding Events
// at the time/date
date.then(_=>console.log('times up'))
// before the time/date occurs
date.before({ seconds:30 }).then(_=>console.log('30 seconds before'))
// after the time/date occurs
date.after({ seconds:30 }).then(_=>console.log('30 seconds after'))
// chaining events
date
.before({ seconds:30 }, _=>console.log('30 seconds before'))
.then(_=>console.log('times up'))
.after({ minutes:1 }, _=>console.log('1 minute after'))
.after({ minutes:5 }, _=>console.log('5 minutes after'))
// canceling events
date.cancel()
Shortcuts
date.adjust({ days:1, hours:6, minutes:20 })
date.difference(new Date())
// -> { ms: 109200000, days: 1, hours: 30, minutes: 1820, seconds: 109200 }
date.difference(new Date(), { relative:true })
// -> { days: 1, hours: 6, minutes: 20, seconds: 0 }
date.ttl
// -> { ms: 109200000, days: 1, hours: 30, minutes: 1820, seconds: 109200 }
date.relativettl
// -> { days: 1, hours: 6, minutes: 20, seconds: 0 }
date.ttlString()
// -> "1 day 6 hours 20 minutes"
date.ttlString('days')
// -> "1 day"
date.ttlString('days,hours')
// -> "1 day 6 hours"
date.past
// -> false
date.future
// -> true
`${date.month} ${date.day} ${date.hour} ${date.minute} ${date.second}`
// -> 5 19 23 19 1
`${date.hourReadable}:${date.minuteReadable}:${date.secondReadable} ${date.ampm}`
// -> 11:19:01 PM
`${date.monthName} ${date.dayName}`
// -> june friday
date.daysInMonth
// -> 30