JSFiddle - React, Tailwind, and code Playground
by thelifeisyours
JavaScript
const date = (type) => {
let date = new Date();
let day = {
number: {
week: date.getDay(),
full: date.getDate(),
},
text: ["Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"][date.getDay() - 1]
}
let month = {
number: date.getMonth(),
text: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"][date.getMonth() - 1]
}
let year = {
number: {
short: date.getFullYear().toString().slice(2),
full: date.getFullYear(),
},
}
let time = {
hours: {
military: date.getHours(),
standard: date.getHours() % 12,
},
minutes: date.getMinutes()
}
let timeStringFormat = /(weekday|day|dd|d)|(month|MM)|(y{4}|Y{4}|y{2}|Y{2})|(hh|h)|(mm)|(\W+)/g
let matchTimeStringFormat = type.match(timeStringFormat);
console.log(matchTimeStringFormat);
let timeString = matchTimeStringFormat.map((matched) => {
switch(matched) {
//Match days
case("d"): {
return day.number.week
}
case("dd"): {
return day.number.full
}
case("day"):
case("weekday"): {
return day.text
}
//Match month
case("month"): {
return month.text
}
case("MM"): {
return month.number
}
//Match year
case("yy"):
case("YY"): {
return year.number.short
}
case("yyyy"):
case("YYYY"): {
return year.number.full
}
//Match hours
case("hh"): {
return time.hours.military
}
case("h"): {
return time.hours.standard
}
//Match minutes
case("mm"): {
return time.minutes
}
default: {
return matched
}
}
})
return timeString.join('')
}