jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

53 lines
1.3 KiB

'use strict';
const YEAR = 31536000000
, MONTH = 2592000000
, WEEK = 604800000
, DAY = 86400000
, HOUR = 3600000
, MINUTE = 60000;
module.exports = {
YEAR, MONTH, WEEK, DAY, HOUR, MINUTE,
//ms until next hour
'nextHour': () => {
return 3600000 - new Date().getTime() % 3600000;
},
//string representing how long since date A to date B
'relativeString': (currentTime, eventTime) => {
const difference = currentTime.getTime() - eventTime.getTime();
let amount = 0;
let ret = '';
let color;
if (difference < MINUTE) {
return { color: '#39d6bc', text:'Now' };
} else if (difference < HOUR) {
amount = Math.floor(difference / MINUTE);
color = '#008000';
ret += `${amount} minute`
} else if (difference < DAY) {
amount = Math.floor(difference / HOUR);
color = '#84c100';
ret += `${amount} hour`
} else if (difference < WEEK) {
amount = Math.floor(difference / DAY);
color = '#fffd00';
ret += `${amount} day`;
} else if (difference < MONTH) {
amount = Math.floor(difference / WEEK);
color = '#ff6700';
ret += `${amount} week`;
} else if (difference < YEAR) {
amount = Math.floor(difference / MONTH);
color = '#ff0000';
ret += `${amount} month`;
} else {
return { color: '#ff000047', text: 'More than a year ago' };
}
return { color, text: `${ret}${amount > 1 ? 's' : ''} ago` };
}
};