export default ((locale) => { const self = {} if (locale === undefined) { self.locales = { pastPrefix: '', pastSufix: 'ago', futurePrefix: 'in', futureSufix: '', seconds: '%p less than a minutei %s', minute: '%p about a minute %s', minutes: '%p %d minutes %s', hour: '%p about an hour %s', hours: '%p about %d%r hours %s', day: '%p a day %s', days: '%p %d%r days %s', month: '%p about a month %s', months: '%p %d%r months %s', year: '%p about a year %s', years: '%p %d%r years %s' } } else { self.locales = locale } self.inWords = (timeDistance, start) => { if (start === undefined) { start = new Date() } else { start = start instanceof(Date) ? start : parseInt(start) } timeDistance = timeDistance instanceof(Date) ? timeDistance : parseInt(timeDistance) const prefix = timeDistance < new Date() ? self.locales.pastPrefix : self.locales.futurePrefix const sufix = timeDistance < new Date() ? self.locales.pastSufix : self.locales.futureSufix let seconds = Math.abs(Math.floor((start - timeDistance) / 1000)), interval = 0, rest = 0, intervals = { year: seconds / 31536000, month: seconds / 2592000, day: seconds / 86400, hour: seconds / 3600, minute: seconds / 60 } let distance = self.locales.seconds let key for (key in intervals) { interval = Math.floor(intervals[key]) rest = intervals[key] - interval if (interval >= 1) { distance = self.locales[key + 's'] break } else if (interval === 1) { distance = self.locales[key] break } } if (rest > 0.5) { distance = distance.replace(/%r/, "½") } else if (rest > 0.25) { distance = distance.replace(/%r/, "¼") } else { if (interval === 1) { distance = self.locales[key] } distance = distance.replace(/\s*%r/, "") } distance = distance.replace(/%d/i, interval) distance = distance.replace(/%p/i, prefix) distance = distance.replace(/%s/i, sufix) return distance.trim() } return self }) export const deLocale = { pastPrefix: 'seit', pastSufix: '', futurePrefix: 'in', futureSufix: '', seconds: '%p %d Sekunden', minute: '%p einer Minute', minutes: '%p %d Minuten', hour: '%p einer Stunde', hours: '%p %d%r Stunden', day: '%p einem Tag', days: '%p %d%r Tagen', month: '%p einem Monat', months: '%p %d%r Monaten', year: '%p einem Jahr', years: '%p %d%r Jahren' }