eksi-sozluk
Version:
Eksi Sozluk NodeJS client.
63 lines (55 loc) • 1.63 kB
JavaScript
const moment = require('moment')
const regexList = [
/((\d{2}\.){2}\d{4})/,
/((\d{2}\.){2}\d{4}\s\d{2}:\d{2})/,
/((\d{2}\.){2}\d{4}\s\d{2}:\d{2}\s~\s\d{2}:\d{2})/,
/(((\d{2}\.){2}\d{4}\s\d{2}:\d{2})\s~\s((\d{2}\.){2}\d{4}\s\d{2}:\d{2}))/
]
/**
* Parse given date string.
*
* @param {string} date Ex. 08.06.2016 13:59 ~ 31.08.2016 08:50
* @returns {{created: string, modified: string|null}} Parsed date.
*/
const parseDate = date => {
// localize moment
moment.locale('tr')
const modified = date.indexOf(' ~ ') > 0
let level = 0
regexList.forEach(regex => {
if (regex.test(date)) {
level = regexList.indexOf(regex)
}
})
const d = {}
if (level === 0) {
d.created = moment(date + ' 00:00:00', 'DD.MM.YYYY HH:mm:ss')
.format()
.toString()
d.modified = null
} else if (level === 1) {
d.created = moment(date + ':00', 'DD.MM.YYYY HH:mm:ss')
.format()
.toString()
d.modified = null
} else if (level === 2 && modified) {
d.created = moment(date.split(' ~ ')[0] + ':00', 'DD.MM.YYYY HH:mm:ss')
.format()
.toString()
d.modified = moment(
date.split(' ~ ')[0] + ' ' + date.split(' ~ ')[1] + ':00',
'DD.MM.YYYY HH:mm:ss'
)
.format()
.toString()
} else if (level === 3 && modified) {
d.created = moment(date.split(' ~ ')[0] + ':00', 'DD.MM.YYYY HH:mm:ss')
.format()
.toString()
d.modified = moment(date.split(' ~ ')[1] + ':00', 'DD.MM.YYYY HH:mm:ss')
.format()
.toString()
}
return d
}
module.exports = parseDate