mirror of
https://github.com/home-assistant/frontend.git
synced 2025-06-30 22:16:35 +00:00
31 lines
736 B
JavaScript
31 lines
736 B
JavaScript
/** Calculate a string representing a date object as relative time from now.
|
|
*
|
|
* Example output: 5 minutes ago, in 3 days.
|
|
*/
|
|
const tests = [
|
|
60, 'second',
|
|
60, 'minute',
|
|
24, 'hour',
|
|
7, 'day',
|
|
];
|
|
|
|
export default function relativeTime(dateObj) {
|
|
let delta = Math.abs((new Date() - dateObj) / 1000);
|
|
const format = delta >= 0 ? '%s ago' : 'in %s';
|
|
|
|
for (let i = 0; i < tests.length; i += 2) {
|
|
if (delta < tests[i]) {
|
|
delta = Math.floor(delta);
|
|
return format.replace(
|
|
'%s',
|
|
delta === 1 ? '1 ' + tests[i + 1] : delta + ' ' + tests[i + 1] + 's'
|
|
);
|
|
}
|
|
|
|
delta /= tests[i];
|
|
}
|
|
|
|
delta = Math.floor(delta);
|
|
return format.replace('%s', delta === 1 ? '1 week' : delta + ' weeks');
|
|
}
|