@trade-quorum/tq-helpers
Version:
Various common helpers for Trade Quorum API/App
39 lines (33 loc) • 1.41 kB
JavaScript
const moment = require('moment');
exports.isOnSameDay = (date1, date2) =>
date1.getDate() === date2.getDate() &&
date1.getMonth() === date2.getMonth() &&
date1.getFullYear() === date2.getFullYear();
exports.isToday = (date) => exports.isOnSameDay(new Date(), date);
exports.duration = (fromDate, toDate) => {
fromDate = new Date(fromDate);
if (!toDate) toDate = new Date(Date.now());
else toDate = new Date(toDate);
const isOnSameDate =
toDate.getDate() === fromDate.getDate() &&
toDate.getMonth() === fromDate.getMonth() &&
toDate.getFullYear() === fromDate.getFullYear();
const durationDate = new Date(toDate.getTime() - fromDate.getTime());
// Format duration
if (!isOnSameDate) return moment().format(durationDate, 'd[d ago]');
else if (durationDate.getTime() < 60000)
return moment().format(durationDate, 's[s ago]');
else if (durationDate.getTime() < 3600000)
return moment().format(durationDate, 'm[m ago]');
else return moment().format(durationDate, 'h[h] m[m ago]');
};
exports.filterDatesWithin = (dates, timeInMilliseconds) => {
const now = Date.now();
const filteredDates = [];
for (const date in dates) {
if (now - date.getTime() <= timeInMilliseconds) filteredDates.push(date);
}
return filteredDates;
};
exports.countDatesWithin = (dates, timeInMilliseconds) =>
exports.filterDatesWithin(dates, timeInMilliseconds).length;