diff --git a/public/i18n.js b/public/i18n.js
index fa1c1d6..fc7f077 100644
--- a/public/i18n.js
+++ b/public/i18n.js
@@ -87,7 +87,7 @@ function isDateOnlyString(value) {
return typeof value === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(value);
}
-const VALID_DATE_FORMATS = ['mdy', 'dmy', 'ymd', 'mdy_dot', 'dmy_dot', 'ymd_dot', 'ymd_slash'];
+const VALID_DATE_FORMATS = ['mdy', 'dmy', 'ymd', 'mdy_dot', 'dmy_dot', 'dmy_slash', 'ymd_dot', 'ymd_slash'];
function getDateFormatPreference() {
const stored = localStorage.getItem(DATE_FORMAT_KEY);
@@ -114,9 +114,10 @@ function formatDateParts(date, useUtc = false) {
const month = String((useUtc ? d.getUTCMonth() : d.getMonth()) + 1).padStart(2, '0');
const day = String(useUtc ? d.getUTCDate() : d.getDate()).padStart(2, '0');
switch (getDateFormatPreference()) {
- case 'dmy': return `${day}/${month}/${year}`;
+ case 'dmy': return `${day}.${month}.${year}`;
case 'mdy_dot': return `${month}.${day}.${year}`;
case 'dmy_dot': return `${day}.${month}.${year}`;
+ case 'dmy_slash': return `${day}/${month}/${year}`;
case 'ymd': return `${year}-${month}-${day}`;
case 'ymd_dot': return `${year}.${month}.${day}`;
case 'ymd_slash': return `${year}/${month}/${day}`;
@@ -145,9 +146,10 @@ export function formatDate(date) {
export function dateInputPlaceholder() {
switch (getDateFormatPreference()) {
- case 'dmy': return 'DD/MM/YYYY';
+ case 'dmy': return 'DD.MM.YYYY';
case 'mdy_dot': return 'MM.DD.YYYY';
case 'dmy_dot': return 'DD.MM.YYYY';
+ case 'dmy_slash': return 'DD/MM/YYYY';
case 'ymd': return 'YYYY-MM-DD';
case 'ymd_dot': return 'YYYY.MM.DD';
case 'ymd_slash': return 'YYYY/MM/DD';
diff --git a/public/pages/settings.js b/public/pages/settings.js
index faaae39..c1c72c9 100644
--- a/public/pages/settings.js
+++ b/public/pages/settings.js
@@ -338,10 +338,10 @@ export async function render(container, { user }) {
diff --git a/server/routes/preferences.js b/server/routes/preferences.js
index 9ff8d00..3f132d2 100644
--- a/server/routes/preferences.js
+++ b/server/routes/preferences.js
@@ -20,7 +20,7 @@ const VALID_CURRENCIES = ['AED', 'AUD', 'BRL', 'CAD', 'CHF', 'CNY', 'CZK', 'DKK'
const DEFAULT_CURRENCY = 'EUR';
const DEFAULT_APP_NAME = 'Oikos';
-const VALID_DATE_FORMATS = ['mdy', 'dmy', 'ymd', 'mdy_dot', 'dmy_dot', 'ymd_dot', 'ymd_slash'];
+const VALID_DATE_FORMATS = ['mdy', 'dmy', 'ymd', 'mdy_dot', 'dmy_dot', 'dmy_slash', 'ymd_dot', 'ymd_slash'];
const DEFAULT_DATE_FORMAT = 'mdy';
const VALID_TIME_FORMATS = ['24h', '12h'];
const DEFAULT_TIME_FORMAT = '24h';