diff options
| author | Henry Jameson <me@hjkos.com> | 2024-09-26 01:10:57 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2024-09-26 01:10:57 +0300 |
| commit | 6fc929a0a040bfdf3b403c5f2b708ab4a51fe2e8 (patch) | |
| tree | c85c68d9e09826a9d81b4ef21706f782c5a9a5d6 /src/services/date_utils/date_utils.js | |
| parent | 22cc96705ab3af42a6373ccab6df473ba1243fed (diff) | |
| parent | 05c0b16a935c2799ece31845897d3a29d39e3eee (diff) | |
Merge remote-tracking branch 'origin/develop' into shadow-control-2.0
Diffstat (limited to 'src/services/date_utils/date_utils.js')
| -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 + } +} |
