Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Get time in months|days|hours|seconds|miliseconds later (or of) months|days|hours|seconds|miliseconds
- *
- * Examples:
- * timeIn('second').later(30).minutes();
- * timeIn('second').of(2).days();
- *
- * @param {string} name
- * @return {object} { later, of }
- */
- exports.timeIn = (name = 'milisecond') => {
- const output = (timeInMs) => {
- const makers = {
- month() {
- return timeInMs / 1000 / 60 / 60 / 24 / 30;
- },
- day() {
- return timeInMs / 1000 / 60 / 60 / 24;
- },
- hour() {
- return timeInMs / 1000 / 60 / 60;
- },
- minute() {
- return timeInMs / 1000 / 60;
- },
- second() {
- return timeInMs / 1000;
- },
- milisecond() {
- return timeInMs;
- }
- }
- name = name.replace(/s+$/, '');
- try {
- return makers[name]();
- } catch (error) {
- throw new Error(name + " is not a function");
- }
- }
- const timeMaker = (number, from = Date.now()) => {
- if(typeof number != 'number') {
- throw new Error("number must be in number type");
- }
- const makers = {
- month() {
- return from + (number * 1000 * 60 * 60 * 24 * 30)
- },
- day() {
- return from + (number * 1000 * 60 * 60 * 24)
- },
- hour() {
- return from + (number * 1000 * 60 * 60)
- },
- minute() {
- return from + (number * 1000 * 60)
- },
- second() {
- return from + (number * 1000)
- },
- milisecond() {
- return from + number
- },
- }
- const makerCall = (name) => {
- name = name.replace(/s+$/, '');
- try {
- const timeInMs = makers[name]();
- return output(timeInMs);
- } catch (error) {
- throw new Error(name + " is not a function");
- }
- }
- return {
- month: () => makerCall('month'),
- months: () => makerCall('month'),
- day: () => makerCall('day'),
- days: () => makerCall('day'),
- hour: () => makerCall('hour'),
- hours: () => makerCall('hour'),
- minute: () => makerCall('minute'),
- minutes: () => makerCall('minute'),
- second: () => makerCall('second'),
- seconds: () => makerCall('second'),
- milisecond: () => makerCall('milisecond'),
- miliseconds: () => makerCall('milisecond'),
- }
- }
- const later = number => timeMaker(number);
- const of = number => timeMaker(number, 0);
- return { later, of }
- }
Add Comment
Please, Sign In to add comment