mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-06-15 12:31:15 +00:00
86 lines
1.9 KiB
JavaScript
86 lines
1.9 KiB
JavaScript
export default (miliseconds, type) => {
|
|
let friendlyDate = "";
|
|
const now = new Date();
|
|
const messageDate = new Date(miliseconds);
|
|
|
|
if (sameDay(now, messageDate)) {
|
|
friendlyDate = `Today at ${getFullTime(messageDate, type)}`;
|
|
} else if (yesterDay(now, messageDate)) {
|
|
friendlyDate = `Yesterday at ${getFullTime(messageDate, type)}`;
|
|
} else {
|
|
friendlyDate = getFullDateWithTime(messageDate, type);
|
|
}
|
|
return friendlyDate;
|
|
};
|
|
|
|
function sameDay(d1, d2) {
|
|
return (
|
|
d1.getFullYear() === d2.getFullYear() &&
|
|
d1.getMonth() === d2.getMonth() &&
|
|
d1.getDate() === d2.getDate()
|
|
);
|
|
}
|
|
function yesterDay(d1, d2) {
|
|
return (
|
|
d1.getFullYear() === d2.getFullYear() &&
|
|
d1.getMonth() === d2.getMonth() &&
|
|
d1.getDate() - d2.getDate() == 1
|
|
);
|
|
}
|
|
|
|
function getFullTime(date, type) {
|
|
if (type === "12h") {
|
|
return formatAMPM(date);
|
|
}
|
|
let finalTime = "";
|
|
let hours = date.getHours();
|
|
let minutes = date.getMinutes();
|
|
|
|
if (hours <= 9) {
|
|
finalTime = `0${hours}`;
|
|
} else {
|
|
finalTime = `${hours}`;
|
|
}
|
|
|
|
if (minutes <= 9) {
|
|
finalTime += `:0${minutes}`;
|
|
} else {
|
|
finalTime += `:${minutes}`;
|
|
}
|
|
return finalTime;
|
|
}
|
|
|
|
function getFullDateWithTime(date, type) {
|
|
const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
const months = [
|
|
"Jan",
|
|
"Feb",
|
|
"Mar",
|
|
"Apr",
|
|
"May",
|
|
"Jun",
|
|
"Jul",
|
|
"Aug",
|
|
"Sep",
|
|
"Oct",
|
|
"Nov",
|
|
"Dec"
|
|
];
|
|
const dayName = days[date.getDay()];
|
|
const monthName = months[date.getMonth()];
|
|
return `${dayName} ${date.getDate()} ${monthName} ${date.getFullYear()} at ${getFullTime(
|
|
date,
|
|
type
|
|
)}`;
|
|
}
|
|
|
|
function formatAMPM(date) {
|
|
var hours = date.getHours();
|
|
var minutes = date.getMinutes();
|
|
var ampm = hours >= 12 ? "PM" : "AM";
|
|
hours = hours % 12;
|
|
hours = hours ? hours : 12; // the hour '0' should be '12'
|
|
minutes = minutes < 10 ? "0" + minutes : minutes;
|
|
var strTime = hours + ":" + minutes + " " + ampm;
|
|
return strTime;
|
|
}
|