diff options
| author | Henry Jameson <me@hjkos.com> | 2024-09-20 11:21:26 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2024-09-20 11:21:26 +0300 |
| commit | bd514ab6d0cbd6e3736cc6302d17d17130c57b33 (patch) | |
| tree | 4258ca7f2e710a22a6fe528205129e6132e49d9d /src/services/date_utils | |
| parent | 1124ace7f62b7564bd85b66e618dfb3ed2e551e6 (diff) | |
| parent | 23f8c08809d2ad38780584ef4f46643772cf5efe (diff) | |
found the file lol
Diffstat (limited to 'src/services/date_utils')
| -rw-r--r-- | src/services/date_utils/date_utils.js | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/src/services/date_utils/date_utils.js b/src/services/date_utils/date_utils.js index ed8e1417..69398c0c 100644 --- a/src/services/date_utils/date_utils.js +++ b/src/services/date_utils/date_utils.js @@ -6,10 +6,13 @@ export const WEEK = 7 * DAY export const MONTH = 30 * DAY export const YEAR = 365.25 * DAY -export const relativeTime = (date, nowThreshold = 1) => { +export const relativeTimeMs = (date) => { if (typeof date === 'string') date = Date.parse(date) + return Math.abs(Date.now() - date) +} +export const relativeTime = (date, nowThreshold = 1) => { const round = Date.now() > date ? Math.floor : Math.ceil - const d = Math.abs(Date.now() - date) + const d = relativeTimeMs(date) const r = { num: round(d / YEAR), key: 'time.unit.years' } if (d < nowThreshold * SECOND) { r.num = 0 @@ -57,3 +60,39 @@ export const secondsToUnit = (unit, amount) => { case 'days': return (1000 * amount) / DAY } } + +export const isSameYear = (a, b) => { + return a.getFullYear() === b.getFullYear() +} + +export const isSameMonth = (a, b) => { + return a.getFullYear() === b.getFullYear() && + a.getMonth() === b.getMonth() +} + +export const isSameDay = (a, b) => { + return a.getFullYear() === b.getFullYear() && + a.getMonth() === b.getMonth() && + a.getDate() === b.getDate() +} + +export const durationStrToMs = (str) => { + if (typeof str !== 'string') { + return 0 + } + + const unit = str.replace(/[0-9,.]+/, '') + const value = str.replace(/[^0-9,.]+/, '') + switch (unit) { + case 'd': + return value * DAY + case 'h': + return value * HOUR + case 'm': + return value * MINUTE + case 's': + return value * SECOND + default: + return 0 + } +} |
