UNPKG

javascript-functions

Version:
126 lines (112 loc) 3.43 kB
// =============================== Date & Time =========================== // /** * Getting an Array of Times + "AM" or "PM". * @param {number} startTime Starting hour [in minutes]. * @param {number} minutesInterval every *n* minutes [default = 15]. * @returns {Array} Array of time. */ export const getTimes = (startTime = 0, minutesInterval = 15) => { const times = []; // time array const x = minutesInterval; // minutes interval let tt = startTime; // start time const ap = ["AM", "PM"]; // AM-PM const formatHrs = (hh) => { const _12Format = hh === 12 ? 12 : hh % 12; return _12Format === 0 ? 12 : _12Format; }; // loop to increment the time and push results in array for (let i = 0; tt < 24 * 60; i += 1) { const hh = Math.floor(tt / 60); // getting hours of day in 0-24 format const mm = tt % 60; // getting minutes of the hour in 0-55 format const hours = `0${formatHrs(hh)}`.slice(-2); const minutes = `0${mm}`.slice(-2); const AMPM = ap[Math.floor(hh / 12)]; times[i] = `${hours}:${minutes} ${AMPM}`; // pushing data in array in [00:00 - 12:00 AM/PM format] tt += x; } return times; }; /** * Returns Today's date. * @returns {Date} Today's date. */ export const today = () => { return new Date(); }; /** * Returns Tomorrow's date * @returns {Date} Tomorrow's date */ export const tomorrow = () => { const day = new Date(); day.setDate(day.getDate() + 1); return day; }; /** * Converts date into time stamp formate. * @param {Date} date date * @returns {Number} In time stamp formate in milliseconds. */ export const toTimeStamp = (date) => { return new Date(date).getTime(); }; /** * Converts date into UTC timezone. * @param {Date} date date * @returns {String} In UTC timezone. */ export const toUTC = (date) => { return new Date(date).toGMTString(); }; /** * Converts Date into Human readable date string. * @param {Date} date [default new Date()]. * @param {String} locales [default "en-Us"]. * @param {Object} options Formatting options. * @param {String} options.weekday * @param {String} options.year * @param {String} options.month * @param {String} options.day * @returns {String} Human readable date. */ export const humanFriendlyDate = ( date = new Date(), locales = "en-US", options ) => { const O = { weekday: "short", year: "numeric", month: "short", day: "numeric", ...options, }; return date.toLocaleDateString(locales, O); }; /** * Converts Date into Human readable time string. * @param {Date} date [default new Date()]. * @param {String} locales [default "en-Us"]. * @returns {String} Human readable date. */ export const humanFriendlyTime = (date = new Date(), locales = "en-US") => { return date.toLocaleTimeString(locales); }; /** * Converts date into Unix Timestamp formate. * @param {Date} date date * @returns {Number} In unix timestamp formate. */ export const toUnixTimeStamp = (date) => { return Math.floor(new Date(date).getTime() / 1000); }; /** * Logs all Date methods starts with to*. */ export const logToDateMethods = () => { console.log( Object.getOwnPropertyNames(Date.prototype) .filter((name) => name.startsWith("to")) .map((method) => `${method}: ${new Date()[method]()}`) ); };