Nertivia-Client/src/date.js
2019-02-17 12:32:00 +00:00

53 lines
No EOL
1.5 KiB
JavaScript

export default (miliseconds) => {
let friendlyDate = "";
const now = new Date();
const messageDate = new Date(miliseconds);
if (sameDay(now, messageDate)) {
friendlyDate = `Today at ${getFullTime(messageDate)}`
} else if (yesterDay(now, messageDate)) {
friendlyDate = `Yesterday at ${getFullTime(messageDate)}`
} else {
friendlyDate = getFullDateWithTime(messageDate)
}
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){
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) {
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)}`
}