UNPKG

diff-ymd-package

Version:

A javascript library for calculating the difference between two dates in formatted ways like (aY bM cD)(aYears bMonths cDays) or customized desired formats like aY-bM-cD or aYears-bMonths-cDays or kDays or mWeeks or nMonths etc.

56 lines (51 loc) 3.02 kB
/** * Represents a javascript class for calculating the difference between two dates in formatted ways like (aY bM cD)(aYears bMonths cDays) or customized desired formats like aY-bM-cD or aYears-bMonths-cDays or nDays or mWeeks etc. * * @class */ const DatesYMD = require('./DatesYMD'); /** * Represents a utility for calculating the difference between two dates in formatted or desired customized ways. * * @typedef {Object} DatesYMD * @property {Function} diffArray - Calculates the difference between two dates and returns an array containing years, months, days, and a formatted difference string. * @property {Function} formattedYMD - Returns the formatted difference between two dates. * @property {Function} customizeFormat - Customizes the difference using specified units and separators. * @property {Function} diffInMonths - Calculates the difference in months between two dates. * @property {Function} diffInWeeks - Calculates the difference in weeks between two dates. * @property {Function} diffInDays - Calculates the difference in days between two dates. * @property {Function} diffInYears - Calculates the difference in years between two dates. * @property {Function} diffInHours - Calculates the difference in hours between two dates. * @property {Function} diffInMinutes - Calculates the difference in minutes between two dates. * @property {Function} diffInSeconds - Calculates the difference in seconds between two dates. */ /** * Creates an instance of DatesYMD. * * @param {string} firstDate (type- String but Number for epoch, and Object for dateObject) - The first date in the format 'yyyy-mm-dd' or 'yyyy/mm/dd' or yyyy.mm.dd or dateString or dateObject or Timestamp(epoch). * @param {string} secondDate (type- String but Number for epoch, and Object for dateObject) - The second date in the format 'yyyy-mm-dd' or 'yyyy/mm/dd' or yyyy.mm.dd or dateString or dateObject or Timestamp(epoch). * * @returns {DatesYMD} An object containing methods for date difference calculations. */ const diffDates = require('./diff-dates'); /** * Makes the `diff` method available as the method of the Date object on importing the diff-ymd-package. * * This method creates an instance of DatesYMD to calculates the difference between Date instance and the passed date. * * @function * @memberof Date.prototype * @name diff * @param {string} date (type- String but Number for epoch, and Object for dateObject) - The date to be differed, in the format 'yyyy-mm-dd' or 'yyyy/mm/dd' or yyyy.mm.dd or dateString or dateObject or Timestamp(epoch). * @returns {DatesYMD} An object containing methods for date difference calculations. */ if (!Date.prototype.diff) { Date.prototype.diff = function (date) { return diffDates(this, date); }; } // Export the DatesYMD class and equivalent function diffDates for usages in other modules module.exports = DatesYMD; // default export for class module.exports.diffDates = diffDates; // named export for equivalent function