'use strict'
/**
* @module dates
*/
export const dates = {};
/**
* Initializes a javascript {@link Date} from a string or number formatted as YYYYMMDD.
*
* @param {string|number} str a string or number formatted as YYYYMMDD.
* @return {?Date} a javascript {@link Date}.
* @memberOf module:dates
*/
dates.yyyyMmDdToDate = function (str) {
str = str ? ('' + str).trim() : '';
if (str.length === 8) {
const year = parseInt(str.substring(0, 4), 10);
const month = parseInt(str.substring(4, 6), 10);
const day = parseInt(str.substring(6, 8), 10);
return new Date(year, month - 1, day);
}
return null;
}
/**
* Initializes a javascript {@link Date} from a string or number formatted as DDMMYYYY.
*
* @param {string|number} str a string or number formatted as DDMMYYYY.
* @return {?Date} a javascript {@link Date}.
* @memberOf module:dates
*/
dates.ddMmYyyyToDate = function (str) {
str = str ? ('' + str).trim() : '';
if (str.length === 8) {
const day = parseInt(str.substring(0, 2), 10);
const month = parseInt(str.substring(2, 4), 10);
const year = parseInt(str.substring(4, 8), 10);
return new Date(year, month - 1, day);
}
return null;
}
/**
* Formats a javascript {@link Date} to a string formatted as YYYY-MM-DD.
*
* @param {Date} date a javascript {@link Date}.
* @param {?string} separator a separator that will be inserted between the date parts.
* @return {?string} a string formatted as YYYY-MM-DD.
* @memberOf module:dates
*/
dates.dateToYyyyMmDd = function (date, separator) {
separator = separator || separator === '' ? separator : '-';
return date instanceof Date ? date.getFullYear() + separator + (date.getMonth() < 9 ? '0' : '') + (date.getMonth()
+ 1) + separator + (date.getDate() < 10 ? '0' : '') + date.getDate() : null;
}
/**
* Formats a javascript {@link Date} to a string formatted as DD-MM-YYYY.
*
* @param {Date} date a javascript {@link Date}.
* @param {?string} separator a separator that will be inserted between the date parts.
* @return {?string} a string formatted as DD-MM-YYYY.
* @memberOf module:dates
*/
dates.dateToDdMmYyyy = function (date, separator) {
separator = separator || separator === '' ? separator : '-';
return date instanceof Date ? (date.getDate() < 10 ? '0' : '') + date.getDate() + separator + (date.getMonth() < 9
? '0' : '') + (date.getMonth() + 1) + separator + date.getFullYear() : null;
}