@rashedmakkouk/dev-utils
Version:
Utility library.
38 lines (37 loc) • 1.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/** Utilities */
const moment_1 = __importDefault(require("moment"));
/**
* Parses any date value to a timestamp with predefined or custom format.
*
* - datetime: dddd, MMMM D at h:mA
* - fromNow: Relative time.
* - short: ddd, MMM D
* - sql: YYYY-MM-DD HH:mm:ss
*
* @param date - Parses supplied value, else falls back to Date/Time Now.
*
* @returns Formatted timestamp.
*/
function timestamp(date = Date.now(), options = {}) {
const instance = (0, moment_1.default)(date);
// TODO: Add 'timezoneOffset' support; Issue #6.
const { format = 'DD/MM/YYYY', timezoneOffset } = options;
switch (format) {
case 'datetime':
return `${instance.format('dddd, MMMM D')} at ${instance.format('h:mmA')}`;
case 'fromNow':
return instance.fromNow();
case 'short':
return `${instance.format('ddd, MMM D')} ${instance.format('h:mmA')}`;
case 'sql':
return instance.format('YYYY-MM-DD HH:mm:ss');
default:
return instance.format(format);
}
}
exports.default = timestamp;