← Back to context

Comment by teeray

14 hours ago

> There are hundreds of ways that different websites ask you to pick dates

Ugh, date pickers. So many of these violently throw up when I try to do the obvious thing: type in the damn date. Instead they force me to click through their inane menu, as if the designer wanted to force me into a showcase of their work. Let your power users type. Just call your user’s attention back to the field if they accidentally typed 03/142/026.

No no, I find that having to click back through almost 40 years’ worth of months to get to my birthday allows for a nice pause to consider the fleeting and ever-accelerating nature of life.

  • You can usually click the year and then pick that first. But the fact that so many people don't instantly get that shows how poorly designed it is.

    • > You can usually click the year and then pick that first.

      Even then, clicking the year will often lead to a tiny one-page list of 10 years, which you can either page back in or click the decade to get shown a list of decades to pick from. So: click 2026, click 2020s, click 19XXs, click a year, click a month, click a birthday.

      Such an interface makes at least some sense for "pick a date in the near future". When I'm booking an airline flight, I usually appreciate having a calendar interface that lets me pick a range for the departure and return dates. But it makes no sense for a birthday.

Is 03/04/2026 March 4th or the 3rd of April?

If you have an international audience that’s going to mess someone up.

Better yet require YYYY-MM-DD.

  • <input type="date"> is automatically formatted based on the user's locale.

    • Input type=date also just saves the day, month and year with no timezone information, which makes sense since the widget doesn't show any and context determines if the date should be in the user's timezone or a fixed timezone (like an event start date or a flight departure). But if you don't immediately convert that date to an ISO date and instead save it to the DB as yyyymmdd, you're in for a world of hurt trying to display date/times throughout the site. I inherited a project like this and have spent countless hours wrestling with nightmare timezone issues.

    • This is still a partial solution as the user needs to know that their locale is being used and know how their locale is configured to understand the format. This is most problematic on shared computers or kiosks, especially when traveling.

      3 replies →

  • A partial solution is to put DD/MM/YYYY (or the appropriate format) as the input placeholder. You could also display the format as a tooltip when the input field is focused. IMO this is better than dealing with date pickers.

  • Or:

    - Use localization context to show the right order for the user

    - Display context to the user that makes obvious what the order is

    - Show the month name during/immediately after input so the user can verify

  • > Better yet require YYYY-MM-DD

    This is the equivalent of requiring all your text to be in Esperanto because dealing with separate languages is a pain.

    "Normal" people never use YYYY-MM-DD format. The real world has actual complexity, tough, and the reason you see so many bugs and problems around localization is not that there aren't good APIs to deal with it, it's that it's often an after thought, doesn't always provide economic payoff, and any individual developer is usually focused on making sure it "looks good" I'm whatever locale they're familiar with.

  • I've seen some that had a drop-down for the month name. But since it was native, I could type the month name and my browser selected the right one.

  • As they type it, start displaying what it is. If, as you type "03/", it says "March", and that's not what you want, you now know what format it wants.

    (And yes, always accept YYYY-MM-DD format, please.)

    • Ah, the MS Word experience:

      User enters German date "1. April"

      MS Word: new ordered list with item "April"

      User furiously hits delete key.

Date pickers are the absolute worst. It blows my mind we don't have a clean standard by now.

The best is when a site uses the exact same date picker for birthdate as for some date in the future. Yes, I'd love to click backward 50 years to get to my birthdate. Thank you for reminding me how old I am.

Relatedly, scrolling time pickers are also a toss up on mobile. Sometimes a single swipe on the minutes gets you from 12:00pm to 11:50am, sometimes it doesn’t.

I wish the analog clock picker where two quick taps set the hours and minutes (and one more tap for am/pm) was more common.

I hate how scrolling through a list of years to enter my birthday forces me to confront my mortality

  • I hate how websites that are trying to verify my age make me scroll through 13, 18, or 21 years that I could not legitmately select if I want to use the site.

There's a small rental car company I use sometimes whos date picker is meant for phones and you have to "grab" the wheel and push it up / down do get to your date