UNPKG

@fav/type.to-date

Version:

Convert a string in various date format to a date object.

40 lines (30 loc) 979 B
'use strict'; var isString = require('@fav/type.is-string'); var isValidDate = require('@fav/type.is-valid-date'); var newDate = require('./new-date'); function fromHyphenedYmdAndHms(text) { if (!isString(text)) { return null; } /* eslint-disable max-len */ var result = /^([\+\-]?[0-9]+)\/([0-9]+)\/([0-9]+)\s+([0-9]+):([0-9]+):([0-9]+)(\.[0-9]+){0,1}$/.exec(text); /* eslint-enable max-len */ if (!result) { return null; } var year = parseInt(result[1], 10); var month = parseInt(result[2], 10); var day = parseInt(result[3], 10); var hour = parseInt(result[4], 10); var minute = parseInt(result[5], 10); var second = parseInt(result[6], 10); var millis; if (result[7]) { millis = parseInt((result[7].slice(1) + '000').slice(0, 3), 10); } else { millis = 0; } var date = newDate(year, month - 1, day, hour, minute, second, millis); return isValidDate(date) ? date : null; } module.exports = fromHyphenedYmdAndHms;