I have an application that converts the following invalid dates, with only two-character years into a valid date format automatically while the user's filling out the form:
(NOTE: The application is only in-use by UK organisations, so the dates are all UK format only)
01/01/01 to 01/01/2001
14/05/58 to 14/05/1958
21/11/25 to 21/11/2025
It works out which century to use based on a semi-arbitrary threshold on 2050
, so if a user inputs 49
, they'll get 2049
, but if they enter 50
they'll get 1950
.
The conversion happens when the user tabs off the field and is visible immediately.
I recently received a complaint from one user who said they entered 10
and got 2010
, but entered 27
and got 2027
, not the 1927
they were hoping for. Their reasoning was that the 2027
was in the future, and should therefore convert to 1927
instead (because the future date was impossible).
I think in the long run, I'd love to just get rid of this functionality - I have no idea what's going to happen when we hit 2050... But in the short term, is there a way to alter the existing, basic, algorithm to make it more intuitive or user-friendly?
Background (not related to question)
For those interested, the user can also pick the date from a list of dates, or enter a date in a few other formats with various dashes and slashes and the system will make similar adjustments. If the system is unable to make an adjustment to the valid date format, it alerts the user via a visual cue and validation on the page fails.
The uses of the terms "valid" and "invalid" here are purely in relation to the application and have no bearing on any particular national or international date format.
Similar to this question: Date picker subtleties: Input year by using numeric keys