diff --git a/core/misc/date.js b/core/misc/date.js index 8b6b71cb1d..f0c8c3823f 100644 --- a/core/misc/date.js +++ b/core/misc/date.js @@ -36,6 +36,24 @@ .replace('Y', 'yy') .replace('m', 'mm') .replace('d', 'dd'); + + // If the date format isn't the standard HTML5 one, we need to use + // jQuery altField mecanism to ensure data get sent in the correct + // format. + if (datepickerSettings.dateFormat != 'yy-mm-dd') { + var $hidden = $(''); + $hidden.attr('name', $input.attr('name')); + $hidden.val($input.val()); + $input.attr('name', ''); + $input.parent().append($hidden); + datepickerSettings.altFormat = 'yy-mm-dd'; + datepickerSettings.altField = $hidden; + if ($input.val()) { + var localized = $.datepicker.formatDate(datepickerSettings.dateFormat, new Date($input.val())); + $input.val(localized); + } + } + // Add min and max date if set on the input. if ($input.attr('min')) { datepickerSettings.minDate = $input.attr('min');