@messageformat/runtime
Version:
Runtime components of messageformat
47 lines (46 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.date = void 0;
/**
* Represent a date as a short/default/long/full string
*
* @param value Either a Unix epoch time in milliseconds, or a string value
* representing a date. Parsed with `new Date(value)`
*
* @example
* ```js
* 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(value, lc, size) {
var o = {
day: 'numeric',
month: 'short',
year: 'numeric'
};
/* eslint-disable no-fallthrough */
switch (size) {
case 'full':
o.weekday = 'long';
case 'long':
o.month = 'long';
break;
case 'short':
o.month = 'numeric';
}
return new Date(value).toLocaleDateString(lc, o);
}
exports.date = date;