deno
Version:
A bridge to Deno.
73 lines (63 loc) • 1.28 kB
JavaScript
;
const MODULE_REQUIRE = 1
/* built-in */
/* NPM */
, dafo = require('dafo')
/* in-package */
;
let DATE_PATTERNS = {
'mm-dd-yyyy' : 'm-d-Y',
'dd-mm-yyyy' : 'd-m-Y',
'yyyy-mm-dd' : 'Y-m-d',
};
let DATETIME_PATTERNS = {
'mm-dd-yyyy hh:mm' : 'm-d-Y H:i',
'dd-mm-yyyy hh:mm' : 'd-m-Y H:i',
'yyyy-mm-dd hh:mm' : 'Y-m-d H:i',
'hh:mm mm-dd-yyyy' : 'H:i m-d-Y',
'hh:mm dd-mm-yyyy' : 'H:i d-m-Y',
'hh:mm yyyy-mm-dd' : 'H:i Y-m-d',
};
/**
* @param {string} date
* @param {string} pattern
* @return {Date}
*/
function parseDate(date, pattern) {
pattern = DATE_PATTERNS[pattern];
if (!pattern) {
throw new Error('invalid date format');
}
return dafo.parse(date, pattern);
}
/**
* @param {string} datetime
* @param {string} pattern
* @return {Date}
*/
function parseDateTime(datetime, pattern) {
pattern = DATETIME_PATTERNS[pattern];
if (!pattern) {
throw new Error('invalid datetime format');
}
return dafo.parse(datetime, pattern);
}
/**
* @param {Date} date
* @return {number}
*/
function dayOfYear(date) {
return dafo.getDayOfYear(date);
}
/**
* @return {number}
*/
function currentDayOfYear() {
return dafo.getDayOfYear(new Date);
}
module.exports = {
parseDate,
parseDateTime,
dayOfYear,
currentDayOfYear,
};