UNPKG

smppjs

Version:
47 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dateToRelative = void 0; const dateToRelative = (futureDate) => { if (typeof futureDate === 'string') return futureDate; const now = new Date(); if (futureDate <= now) return '000000000000R'; let years = futureDate.getUTCFullYear() - now.getUTCFullYear(); let months = futureDate.getUTCMonth() - now.getUTCMonth(); let days = futureDate.getUTCDate() - now.getUTCDate(); let hours = futureDate.getUTCHours() - now.getUTCHours(); let minutes = futureDate.getUTCMinutes() - now.getUTCMinutes(); let seconds = futureDate.getUTCSeconds() - now.getUTCSeconds(); let milliseconds = futureDate.getUTCMilliseconds() - now.getUTCMilliseconds(); if (milliseconds < 0) { milliseconds += 1000; seconds--; } if (seconds < 0) { seconds += 60; minutes--; } if (minutes < 0) { minutes += 60; hours--; } if (hours < 0) { hours += 24; days--; } if (days < 0) { const prevMonth = new Date(now.getUTCFullYear(), now.getUTCMonth(), 0); days += prevMonth.getUTCDate(); months--; } if (months < 0) { months += 12; years--; } const pad = (n, len = 2) => n.toString().padStart(len, '0'); const pad3 = (n) => n.toString().padStart(3, '0'); return pad(years) + pad(months) + pad(days) + pad(hours) + pad(minutes) + pad(seconds) + pad3(Math.floor(milliseconds / 10)) + 'R'; }; exports.dateToRelative = dateToRelative; //# sourceMappingURL=dateToRelative.js.map