67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
import {i18n} from './i18n';
|
|
|
|
const locale = i18n.locale;
|
|
|
|
const fullDateFormat = Intl.DateTimeFormat(locale, {
|
|
weekday: "short",
|
|
year: "2-digit",
|
|
month: "2-digit",
|
|
day: "2-digit",
|
|
hour: "2-digit",
|
|
minute: "2-digit",
|
|
});
|
|
const timeFormatter = Intl.DateTimeFormat(locale, {
|
|
hour: "2-digit",
|
|
minute: "2-digit",
|
|
});
|
|
|
|
/*
|
|
// Doesn't work on android yet (so use full time for now instead of relative time)
|
|
const relativeTimeFormatter = new Intl.RelativeTimeFormat(locale, { numeric: "auto"});
|
|
|
|
const DIVISIONS = [
|
|
{ amount: 60, name: "seconds" },
|
|
{ amount: 60, name: "minutes" },
|
|
{ amount: 24, name: "hours" },
|
|
{ amount: 7, name: "days" },
|
|
{ amount: 4.34524, name: "weeks" },
|
|
{ amount: 12, name: "months" },
|
|
{ amount: Number.POSITIVE_INFINITY, name: "years" },
|
|
];
|
|
|
|
function formatTimeAgo(date) {
|
|
let duration = (date - new Date()) / 1000
|
|
for (let i = 0; i < DIVISIONS.length; i++) {
|
|
const division = DIVISIONS[i]
|
|
if (Math.abs(duration) < division.amount) {
|
|
const suffix = (division.name === "days") ? ", " + timeFormatter.format(date) : "";
|
|
return relativeTimeFormatter.format(Math.round(duration), division.name) + suffix
|
|
}
|
|
duration /= division.amount
|
|
}
|
|
}
|
|
*/
|
|
|
|
function timeSince(timeStamp) {
|
|
const now = Math.floor((new Date()).getTime() / 1000);
|
|
const secondsPassed = now - timeStamp;
|
|
const daysPassed = secondsPassed / 60 / 60 / 24;
|
|
const timeStampDate = new Date(timeStamp * 1000);
|
|
//if (daysPassed < 2)
|
|
// return formatTimeAgo(timeStampDate);
|
|
//else
|
|
return fullDateFormat.format(timeStampDate);
|
|
}
|
|
|
|
const toTimeStr = seconds => {
|
|
let minuteStr = String(Math.floor(seconds / 60));
|
|
if (minuteStr.length < 2)
|
|
minuteStr = "0" + minuteStr;
|
|
let secondStr = String(Math.floor(seconds % 60));
|
|
if (secondStr.length < 2)
|
|
secondStr = "0" + secondStr;
|
|
return minuteStr + ":" + secondStr;
|
|
}
|
|
|
|
export { toTimeStr, timeSince };
|