import {createDateFromString} from '@/helpers/time/createDateFromString'
import {format, formatDistanceToNow} from 'date-fns'
import {enGB, de, fr, ru} from 'date-fns/locale'
import {useI18n} from 'vue-i18n'
const locales = {en: enGB, de, ch: de, fr, ru}
const dateIsValid = date => {
if (date === null) {
return false
}
return date instanceof Date && !isNaN(date)
export const formatDate = (date, f, locale) => {
console.log(date)
if (!dateIsValid(date)) {
return ''
date = createDateFromString(date)
const {t} = useI18n()
return date ? format(date, f, {locale: locales[locale || t('date.locale')]}) : ''
export function formatDateLong(date) {
return formatDate(date, 'PPPPpppp')
export function formatDateShort(date) {
return formatDate(date, 'PPpp')
export const formatDateSince = (date) => {
return formatDistanceToNow(date, {
locale: locales[t('date.locale')],
addSuffix: true,
})