UNPKG

flavor-js

Version:

FlavorJS the definitive JS natives chainable extensions methods (based on lodash & ES6)

70 lines (64 loc) 1.82 kB
import _ from 'lodash'; /** * @namespace date * @description the JS native Date class */ export default { native: { /** * checks if something is a date * @example <caption>eg.usage</caption> * console.log(Date.isDate(new Date())); // true * * console.log(Date.isDate(0)); // false * @memberOf date * @method isDate * @instance * @param {*} d - the value to check * @return {boolean} */ isDate(d) { return Date.prototype.isDate.call(d); }, /** * returns a random date between specified range (default now <-> now) * @example <caption>eg. usage</caption> * console.log(Date.random()); // Mon Jan 22 2018 14:07:09 GMT+0100 (CET) * * console.log(Date.random(new Date(1970, 0, 1), new Date())); // Sun Apr 05 1987 00:00:00 GMT+0200 (CEST) * @memberOf date * @method random * @instance * @param {date} startDate - the range start date * @param {date} endDate - the range end date * @return {date} */ random(startDate = new Date(), endDate = new Date()) { return new Date(Math.random() * (endDate.getTime() - startDate.getTime()) + startDate.getTime()); }, /** * transforms a date in a UTC timestamp integer * @example <caption>eg. usage</caption> * console.log((new Date()).toTimestamp()); // 1491317811925 @ 2017-04-4-16:57 * @memberOf date * @method toTimestamp * @instance * @param {date} d - the date to convert * @return {timestamp|0} */ toTimestamp(d) { if (!Date.isDate(d)) { return 0; } return Date.prototype.toTimestamp.call(d); }, }, prototype: { isDate() { return _.isDate(this); }, toTimestamp() { return Math.round(this); }, }, };