diff --git a/packages/localize/src/date/formatDate.js b/packages/localize/src/date/formatDate.js index d72599c84..a0239eeb8 100644 --- a/packages/localize/src/date/formatDate.js +++ b/packages/localize/src/date/formatDate.js @@ -13,22 +13,16 @@ export function formatDate(date, options) { return ''; } const formatOptions = options || {}; - // make sure months and days are always 2-digits - if (!options) { + /** + * Set smart defaults if: + * 1) no options object is passed + * 2) options object is passed, but none of the following props on it: day, month, year. + */ + if (!options || (options && !options.day && !options.month && !options.year)) { formatOptions.year = 'numeric'; formatOptions.month = '2-digit'; formatOptions.day = '2-digit'; } - if (options && !(options && options.year)) { - formatOptions.year = 'numeric'; - } - if (options && !(options && options.month)) { - formatOptions.month = '2-digit'; - } - if (options && !(options && options.day)) { - formatOptions.day = '2-digit'; - } - const computedLocale = getLocale(formatOptions && formatOptions.locale); let formattedDate = ''; try { diff --git a/packages/localize/stories/date.stories.js b/packages/localize/stories/date.stories.js index d88ed9580..ee531d144 100644 --- a/packages/localize/stories/date.stories.js +++ b/packages/localize/stories/date.stories.js @@ -61,6 +61,51 @@ storiesOf('Localize System|Date', module).add( })} +
+ formatDate(new Date(), {weekday:'long',month:'long',day:'2-digit'})
+
+
+ formatDate(new Date(), {weekday:'long',year:'numeric',day:'2-digit'})
+
+
+ formatDate(new Date(), {weekday:'long',year:'numeric',month:'long'})
+
+ formatDate(new Date(){locale:'nl-NL'})