2022-05-28 11:03:36 +02:00
|
|
|
export const friendlyDate = date => {
|
2019-09-20 17:56:01 +02:00
|
|
|
var now = new Date();
|
|
|
|
|
var timeStamp = fromRailsStringToJavascriptDate(date);
|
|
|
|
|
|
|
|
|
|
var secondsPast = (now.getTime() - timeStamp.getTime()) / 1000;
|
|
|
|
|
|
|
|
|
|
if (secondsPast < 60) {
|
2019-09-21 11:17:58 +02:00
|
|
|
return 'just now';
|
2019-09-20 17:56:01 +02:00
|
|
|
} else if (secondsPast < 3600) {
|
2022-05-28 11:03:36 +02:00
|
|
|
let minutesPast = Math.round(secondsPast / 60);
|
2019-09-20 17:56:01 +02:00
|
|
|
return minutesPast + ' ' + (minutesPast === 1 ? 'minute' : 'minutes') + ' ago';
|
|
|
|
|
} else if (secondsPast <= 86400) {
|
2022-05-28 11:03:36 +02:00
|
|
|
let hoursPast = Math.round(secondsPast / 3600);
|
2019-09-20 17:56:01 +02:00
|
|
|
return hoursPast + ' ' + (hoursPast === 1 ? 'hour' : 'hours') + ' ago';
|
|
|
|
|
} else {
|
2022-05-28 11:03:36 +02:00
|
|
|
let daysPast = Math.round(secondsPast / 86400);
|
2019-09-20 17:56:01 +02:00
|
|
|
return daysPast + ' ' + (daysPast === 1 ? 'day' : 'days') + ' ago';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default friendlyDate;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Converts the default Rails datetime string
|
|
|
|
|
format to a JavaScript Date object.
|
|
|
|
|
*/
|
2022-05-28 11:03:36 +02:00
|
|
|
export const fromRailsStringToJavascriptDate = date => {
|
2019-09-20 17:56:01 +02:00
|
|
|
let dateOnly = date.slice(0, 10);
|
|
|
|
|
let timeOnly = date.slice(11, 19);
|
|
|
|
|
|
|
|
|
|
return new Date(`${dateOnly}T${timeOnly}Z`);
|
2022-05-28 11:03:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const fromJavascriptDateToRailsString = (date: Date) => {
|
|
|
|
|
return date.toJSON();
|
2019-09-20 17:56:01 +02:00
|
|
|
}
|