Source: formatters/date.js

/** 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; }