64 lines
2.3 KiB
JavaScript
64 lines
2.3 KiB
JavaScript
import moment$1 from 'moment';
|
|
import zone from 'moment-timezone';
|
|
import moment from 'moment-jalaali';
|
|
import { formatDistanceToNow, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays } from 'date-fns';
|
|
import { faIR } from 'date-fns/locale';
|
|
import { av as dayjs, a as useConfigStore } from './server.mjs';
|
|
|
|
function toJalali(dateTime, format = "jYYYY/jMM/jDD-hh:mm") {
|
|
const tehranTime = zone.tz(dateTime, "UTC").tz("Asia/Tehran");
|
|
return moment(tehranTime).format(format);
|
|
}
|
|
function useDate(dateTime, format = "YYYY/MM/DD HH:mm:ss") {
|
|
const tehranTime = zone.tz(dateTime, "UTC").tz("Asia/Tehran");
|
|
return moment$1(tehranTime).utc(dateTime).format(format);
|
|
}
|
|
const formatTime = (timestamp) => {
|
|
const config = useConfigStore();
|
|
const tehranMoment = zone.utc(timestamp).tz("Asia/Tehran");
|
|
const tehranDate = tehranMoment.toDate();
|
|
return config.lang === "fa" ? formatDistanceToNow(new Date(tehranDate), {
|
|
addSuffix: true,
|
|
locale: faIR
|
|
}) : formatDistanceToNow(new Date(useDate(tehranDate)), { addSuffix: true });
|
|
};
|
|
function getTimeLabel(sentAt) {
|
|
const now = dayjs();
|
|
const sentTime = dayjs(sentAt);
|
|
const diffMinutes = now.diff(sentTime, "minute");
|
|
const diffHours = now.diff(sentTime, "hour");
|
|
const diffDays = now.diff(sentTime, "day");
|
|
const diffWeeks = now.diff(sentTime, "week");
|
|
if (diffMinutes < 1) return "now";
|
|
if (diffMinutes < 60) return `${diffMinutes}m`;
|
|
if (diffHours < 24) return `${diffHours}h`;
|
|
if (diffDays < 7) return `${diffHours}d`;
|
|
return `${diffWeeks}w`;
|
|
}
|
|
const formatTimeShort = (timestamp) => {
|
|
const tehranMoment = zone.utc(timestamp).tz("Asia/Tehran");
|
|
const date = tehranMoment.toDate();
|
|
const now = /* @__PURE__ */ new Date();
|
|
const seconds = differenceInSeconds(now, date);
|
|
if (seconds < 60) {
|
|
return `${seconds}s`;
|
|
}
|
|
const minutes = differenceInMinutes(now, date);
|
|
if (minutes < 60) {
|
|
return `${minutes}m`;
|
|
}
|
|
const hours = differenceInHours(now, date);
|
|
if (hours < 24) {
|
|
return `${hours}h`;
|
|
}
|
|
const days = differenceInDays(now, date);
|
|
if (days < 7) {
|
|
return `${days}d`;
|
|
}
|
|
const weeks = Math.floor(days / 7);
|
|
return `${weeks}w`;
|
|
};
|
|
|
|
export { formatTimeShort as a, formatTime as f, getTimeLabel as g, toJalali as t };
|
|
//# sourceMappingURL=useDateTime-D8RCoGwW.mjs.map
|