/** Represent a date as a short/default/long/full string * * The input value needs to be in a form that the * {@link https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date Date object} * can process using its single-argument form, `new Date(value)`. * * @memberof Formatters * @param {number|string} value - Either a Unix epoch time in milliseconds, or a string value representing a date * @param {string} [type='default'] - One of `'short'`, `'default'`, `'long'` , or `full` * * @example * var mf = new MessageFormat(['en', 'fi']); * * mf.compile('Today is {T, date}')({ T: Date.now() }) * // 'Today is Feb 21, 2016' * * mf.compile('Tänään on {T, date}', 'fi')({ T: Date.now() }) * // 'Tänään on 21. helmikuuta 2016' * * mf.compile('Unix time started on {T, date, full}')({ T: 0 }) * // 'Unix time started on Thursday, January 1, 1970' * * var cf = mf.compile('{sys} became operational on {d0, date, short}'); * cf({ sys: 'HAL 9000', d0: '12 January 1999' }) * // 'HAL 9000 became operational on 1/12/1999' */ function date(v,lc,p) { var o = {day:'numeric', month:'short', year:'numeric'}; switch (p) { case 'full': o.weekday = 'long'; case 'long': o.month = 'long'; break; case 'short': o.month = 'numeric'; } return (new Date(v)).toLocaleDateString(lc, o) } module.exports = function() { return date; }