Date
formatDuration
Returns the human readable format of the given number of milliseconds.
Divide ms
with the appropriate values to obtain the appropriate values for day
, hour
, minute
, second
and millisecond
. Use Object.entries()
with Array.filter()
to keep only non-zero values. Use Array.map()
to create the string for each value, pluralizing appropriately. Use String.join(', ')
to combine the values into a string.
const formatDuration = ms => { if (ms < 0) ms = -ms; const time = { day: Math.floor(ms / 86400000), hour: Math.floor(ms / 3600000) % 24, minute: Math.floor(ms / 60000) % 60, second: Math.floor(ms / 1000) % 60, millisecond: Math.floor(ms) % 1000 }; return Object.entries(time) .filter(val => val[1] !== 0) .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0])) .join(', '); };
formatDuration(1001); // '1 second, 1 millisecond' formatDuration(34325055574); // '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'
getColonTimeFromDate
Returns a string of the form HH:MM:SS
from a Date
object.
Use Date.toString()
and String.slice()
to get the HH:MM:SS
part of a given Date
object.
const getColonTimeFromDate = date => date.toTimeString().slice(0, 8);
getColonTimeFromDate(new Date()); // "08:38:00"
getDaysDiffBetweenDates
Returns the difference (in days) between two dates.
Calculate the difference (in days) between two Date
objects.
const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24);
getDaysDiffBetweenDates(new Date('2017-12-13'), new Date('2017-12-22')); // 9
getMeridiemSuffixOfInteger
Converts an integer to a suffixed string, adding am
or pm
based on its value.
Use the modulo operator (%
) and conditional checks to transform an integer to a stringified 12-hour format with meridiem suffix.
const getMeridiemSuffixOfInteger = num => num === 0 || num === 24 ? 12 + 'am' : num === 12 ? 12 + 'pm' : num < 12 ? (num % 12) + 'am' : (num % 12) + 'pm';
getMeridiemSuffixOfInteger(0); // "12am" getMeridiemSuffixOfInteger(11); // "11am" getMeridiemSuffixOfInteger(13); // "1pm" getMeridiemSuffixOfInteger(25); // "1pm"
tomorrow
Results in a string representation of tomorrow's date. Use new Date()
to get today's date, adding one day using Date.getDate()
and Date.setDate()
, and converting the Date object to a string.
const tomorrow = (long = false) => { let t = new Date(); t.setDate(t.getDate() + 1); const ret = `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String( t.getDate() ).padStart(2, '0')}`; return !long ? ret : `${ret}T00:00:00`; };
tomorrow(); // 2017-12-27 (if current date is 2017-12-26) tomorrow(true); // 2017-12-27T00:00:00 (if current date is 2017-12-26)