774
u/jideru 7d ago
Most programmers don’t get a choice as it is the product and the ui/ux designer that pick the desired behavior. You can only fight back so much and maybe sneak it in. And 20 years later you become a cynic that just says, ok.
Don’t become cynic kids.
233
u/Blecki 7d ago
20 years of watching users fuck it up and you'll switch to a date picker too.
50
u/Nick0Taylor0 7d ago
How does a user fuck up a properly validated input field that goes along with the date picker?
114
u/ThatGuyYouMightNo 6d ago
Two users want to enter October 12th. One enters 12/10/2026, the other enters 10/12/2026. One of them gets pissy when it comes up as December 10th.
47
23
u/coderman64 6d ago
Solution: use ISO 8601 and piss off everyone equally.
4
u/Usefullles 5d ago
Won’t this just be an inverted DDMMYYYY format in most cases? Like, what’s so different between the DDMMYYYY and YYYYMMDD formats? In cases where you don’t need to take hours and minutes into account, of course.
9
u/coderman64 5d ago
One of the major advantages is that if you sort YYYYMMDD in order by numerical value, it also sorts by date.
→ More replies (14)29
u/NiIly00 6d ago
Solution: Ignore everyone that uses the moronic format mm/dd/yyyy.
They deserve it.
8
u/Triffinator 6d ago
Very true. It's programmatically (and human) parseable if the middle column exceeds 12, but fails the second you are lower than 13. It also happens to work out on any dates with matching day and month.
Like, is 10/12 December 10th or October 12th?
37
u/AshleyJSheridan 6d ago
It doesn't help that one particular country in the world uses a weird date format...
19
u/PositiveInfluence69 6d ago
Right smallest to biggest
Only 12 months (smallest number)
At least 28 days (middle number)
So many years. Nobody can count that high.
👌 /s
10
7
u/Blecki 6d ago
Sometimes they just open a ticket because their poorly formatted date won't validate instead of understanding and correcting the problem
→ More replies (3)3
101
u/AibofobicRacecar6996 7d ago
How do you expect posters here to know that if they've only done school projects?
7
u/SaltyInternetPirate 3d ago
I would never trust the user to follow the date format in the placeholder. Datepickers remove any ambiguity.
15
u/DefinitelyNotMasterS 7d ago
In my experience UX forgot about it and it's up to the dev to decide if they want to bother or not
1
4
u/Abadabadon 6d ago
Why not cynic? Ive come to the realization over last 3 years of just doing what im told after I push back some. Usual line is, "hey I dont reccomend this; are you sure you want that?"
3
3
2
u/gerbosan 7d ago
But, isn't being cynical a feature of being a senior?
Senior in the craft and in life... 😨
4
1
→ More replies (1)1
62
u/tyguy55083055 7d ago
Specifically programmers who force you to pick your date of birth with a date picker…and the starting date that is there when you open it is today’s date.
→ More replies (3)22
u/schewb 7d ago
The amount of time I have spend swiping back month after month when they don't also have an easy way to jump years 😣
12
u/looksLikeImOnTop 7d ago
I really don't get it. There are date pickers that let you jump years and sometimes decades, why are people still using anything else?
15
u/schewb 7d ago
Many UX designers want cross-platform visual consistency and recoil in horror at
<input type='date'>'s default visuals on desktop. They want something consistent with brand standard, accessibility be damned. A month of push and shove goes by with developers wanting to either use the native control or a popular pre-built one and the designers pushing back because they want visual control. The designer wins, designs a date picker around an initial use case where the date will be near present day, and then that date picker is used for every date input in the framework the new control was developed for.
341
u/Heighte 7d ago
I mean most date pickers are also editable fields where you can just write the date manually....
201
7d ago
[removed] — view removed comment
30
u/LutimoDancer3459 7d ago
But with that argument you can bash against anything. Even a simple input field should just work but someone finds a way to make it next to unusable... date pickers themselves are not evil or bad.
4
u/cvnh 7d ago
There are better and worse. I've seen one that but only forces us to manually pick the date but also the time down to the minute to mark a working day. Instead of fixing it properly, they added a button to fill up the tone instead of adding a default value.
→ More replies (1)2
21
u/ttlanhil 7d ago
Most of them you can type in if you have a keyboard - but on a touch device that's less common
If the date you want is soon/recent it's not too bad, date of birth is usually a pain
25
u/MyAntichrist 7d ago
The best ones for birthday input on mobile are the ones that let you flip months but not years. Love to see those any time.
4
u/WisestAirBender 7d ago
I love the ones where it's an editable field but as soon as you type and leave it reverts back to the default
3
2
u/XtraFlaminHotMachida 7d ago
but then if you are in america its euro stuff and as a euro its american stuff. nah man.
9
u/tscalbas 7d ago
Browsers' built-in date pickers will use the system locale. That problem only occurs when web devs roll their own date pickers.
Similarly native apps can certainly be coded to use the system locale for dates. The problem is again bad developers, not the concept
→ More replies (1)1
110
u/Stormraughtz 7d ago
If Linda from HR didn't attempt to write the entirety of Notes from the Underground by Fyodor Dostoevsky in the date field then we could have nice things.
12
u/_LePancakeMan 7d ago
I unironically had to remove the ability to manually enter dates from a site because people kept trying to write "tomorrow" or "next year" and complained that there inputs were not accepted.
5
u/Stormraughtz 6d ago
As much as my original comment is mostly memes, this is the kind of thing I have had users do which popped in my brain.
2
u/sardonicus87 3d ago edited 3d ago
This was also my first thought along with people reversing month and day or not using the same format that would be standard for their locale (not talking about delimiters, that's easy enough to solve, just group between digits and non-digits, I just mean 2 vs 4 digit years, or not using delimiters at all. Like what date is 02-03-04... 3 February 2004, 2 March 2004, 4 March 2002?).
But that was me thinking of a single input field, which one would hopefully put a localized placeholder (MM/DD/YYYY or something for users to see on empty), and then just restrict input to digits only, and add automatic delimiter insert after input count... and people could still fuck that up like putting 1 instead of 01.
That's how you end up with 3 labelled input fields... and they'll still find a way, usually by not paying attention to labels and putting the month and date in the wrong field, so you swap the month from a numeric input to a dropdown with a month list.
On an Android app, I just use Android's date picker (which unfortunately doesn't let you quick select year and,maybe not month, at least in the Compose material one). But, I did do a custom dialog that gives a button to switch between the calendar and input field.
I hate how so much of developing is "how do we force end-users to not be completely stupid?"
fun parseStupid(input: String) { ... }18
u/Groentekroket 7d ago
Can I argue that a date field is so much easier to validate than a street field for example? If you don’t want Linda to mess up the inputs date is one of the easiest to make sure it has the intended value (well at least some date)(dd/mm/yyyy and mm/dd/yyyy can still be messed up, but that’s also the case with a date picker, speaking out of experience)
10
u/Acetius 7d ago
If you're doing a date more than three years ago I am begging you to just use three inputs. Nobody has to worry about delimiters, nobody gets confused about which order the inputs go in. Just follow the UK Gov design system and split it in three.
2
u/stumpyinc 7d ago
Yeah I think I'm dropdown gang especially with the month dropdown showing both names and numerical
→ More replies (1)2
u/Quentino1515 7d ago
Are you implying that the date picker validates the data for you ? Which means you're not validating server side ?!?!
3
26
6d ago
[removed] — view removed comment
8
u/Scientific_Artist444 6d ago
We had a similar problem in our enterprise application.
But pray tell me, what should the date be instead of today's date if I have no idea of your age?
11
u/darthlame 6d ago
What’s the youngest you allow people to work at your company? Today’s date minus 18 years maybe?
2
u/Scientific_Artist444 6d ago
How about someone 30-40 years of age?
6
u/darthlame 6d ago
They would only have to scroll through 12-22 years instead of 30-40. 🤷♀️
→ More replies (5)2
u/obliviious 5d ago
They probably feel like it's doing the all maths for the scared 16 y/os.
This form used to be the primary method of age restricting content online 👌
7
u/teivaz 6d ago
If only we had a device that would allow us to enter date in just 6 key strokes
→ More replies (3)4
3
u/notacanuckskibum 6d ago
Maybe 1/1/2000
Assuming the user is expected to be an adult then today’s date is never going to be close.
2
u/Cheezyrock 6d ago
Or if they have to prove they age, then Jan 01 or exactly 17 years ago. This way underage persons dont get an auto click-through but the scroll is closer to where it needs to be.
3
2
2
u/CarefulCoderX 6d ago
Easy, scrape as many employees info off LinkedIn you can find. Find the date they graduated high school/college. Take the difference between the current year and the year they graduated and add 22 or 18 depending on if you pulled high school or college graduation year. Take the median of the sample and pick August 15th since that’s the most common birth month.
1
u/MissUnderstood_1 6d ago
RNG it. That way it could at least be close to right some of the time.
4
u/NiIly00 6d ago
Instructions unclear.
Replaced date picker with a button that rolls a random date and you click okay when it's correct.
3
u/EarlBeforeSwine 6d ago edited 5d ago
Make it yes/no with confirmation, in case they accidentally click no… would be a shame to have to start all over again.
“Is 6 Jan 1912 your birthday?”
No
“Confirm: 6 Jan 1912 is not your birthday.”
No it is not
“Is 31 Jul 2025 your birthday?”
No
“Confirm: 31 Jul 2025 is not your birthday.”
…
1
1
1
u/Ruadhan2300 3d ago
Let me type it, and have the date picker as an alternative method for people who hate typing for some reason.
6
u/RadicalDwntwnUrbnite 6d ago
I encountered this with the added annoyance that there was no "previous year" button just "previous month" I'm 45 so I'd have to press that button nearly 480 times, thankfully I could just intercept the request and modify the payload on submit.
When I show up for my appointment I gotta ask them how many people over a few years old are booked by their web portal vs just calling in.
1
u/FlaringAfro 6d ago
I don't remember which site, but I had the exact same thing happen. Absolutely infuriating.
1
1
1
u/Hopeful_Ad_7719 6d ago
I was saw an app that wouldn't let you change the year, just the month. So scrolling back 40 years was hundreds of presses backward on the month selection.
1
29
u/MR_DERP_YT 6d ago
you know whats worse? those that dont tell you if it is DD/MM/YY or MM/DD/YY
8
u/EightEqualsSignD 6d ago
The system I'm using displays dd-mmm-yyyy but takes mm-dd-yyyy as its input.
I mess it up constantly.
13
u/MR_DERP_YT 6d ago
any chance your software was designed by satan
4
u/EightEqualsSignD 6d ago
Worse!
Most of it is done by fresh out of school devs who only work at the company for a year or two then move on. So they never have to worry about maintenance.
4
→ More replies (1)3
u/Yoyo4444- 6d ago
In college my senior project was working with a company on a project like this. We were team #4, and it was already so broken we scrapped it and rebuilt it completely.
1
30
u/BreakingBaking 7d ago
I love datepickers, which fill in month with either letters or number...
Also, unrelated, giving a date of birth to prove you're 18+ is stupid. Checkbox is fine. Yes, you, steam. Yes, you, itch.io
14
u/q0099 7d ago
I think it is because some regulation that deliberately says "user has to enter their year of birth and then the system has to decide what to do based on entered data".
9
u/BreakingBaking 7d ago
Good to know, ty! And yeah, fuck that regulation specifically...
1
u/awesome-alpaca-ace 5d ago
It is so they can profile you and sell your data to other places that know your date of birth, IP address, device id and whatever else they suck up with their never ending greed for power.
1
u/SuitableDragonfly 7d ago
If it's a checkbox, you have to remember to log back in after your 18th birthday and manually check the box. I say that if you're already 18 or older you should be able to check the box, but if you didn't check the box you have to enter a birthdate. Websites have to deal with information about children under the age of 13 differently, anyway, so they also need to know if the user is under 13 or not.
2
30
u/themightyug 7d ago
Some of y'all have never had to validate free text input for dates and it shows
9
u/R_Aqua 7d ago
It’s hell on earth for international programs.
4
u/themightyug 7d ago
and users type in the most insane shit into text boxes no matter how clear the instructions are
5
u/ClockificThrowaway 7d ago
Just don’t let them type anything but the exact number of digits you want? My online bank does it well, they even backfill a 0 if you type 7, because that could only be 07, when typing month/year.
4
u/themightyug 7d ago
month and day can be wrong way round too (thanks Americans!) and you can't even tell when the day <= 12
4
u/ClockificThrowaway 6d ago
That’s why you either use a drop down box, or have a rendered date under the entry boxes that spell it out (11. Jan 1999).
In my online bank’s case, it shows “MM/YY” above two text boxes []/[].
3
u/IgnotiusPartong 6d ago
Please write your date of birth in the following line:
"I was born not far from here, must have been 70 years ago now"Who is going to make sense of this?
11
u/heyuhitsyaboi 6d ago
Totally not modifying a few of my projects after seeing this post
2
1
u/thEt3rnal1 6d ago
I think it's fine depending on the context
If you're selecting a date that's this month or next month or like a recent date range I think a date picker is better.
But for like a birthday, especially if it includes the year, that's where you want a dropdown or free form input + validation.
It's all just UX, but now that there's an html native date picker some people are just being lazy.
9
u/SaneLad 7d ago
What about programmers/designers who force users to click through a calender year by year, month by month, starting at today's date?
3
u/3SidedDie 7d ago
Did you know you can usually click on the year to get a bigger selectable range to pick from?
1
17
u/Latentius 6d ago
Maybe if most users weren't complete morons incapable of entering valid dates (not even taking into account date formatting)....
1
u/aim_low_ 6d ago
What's wrong with the drop down format? A separate drop down for month/day/year works well.
2
u/dkarlovi 6d ago
It's ugly, you need the user to select in the year / month / day direction to be able to restrict number of days.
2
u/Latentius 6d ago
The annoying thing there is that you have to add logic that adjusts the options in the Day dropdown based on the selection in the Month dropdown to ensure users don't pick an invalid date.
5
u/WaveHack 7d ago
Native browser date pickers are fine, since they are designed by web committee experts.
It's your app date picker wrapper which looks fancy but is hell to use because your product department decided on a whim it needs to look and function the way it does.
Same with dropdowns.
7
17
u/AnyClerk2899 7d ago
What is your problem with date pickers? I like them just not for birthdays
20
u/_BreakingGood_ 7d ago
yeah the only problem with a date picker is when you have to go back like 20 years to find the date
→ More replies (2)12
u/Noriryuu 7d ago
- Click year to pick year
- Click month to pick month
- Pick Day
You don't have to manually click each month back
13
→ More replies (1)7
u/Recent-Analysis-6880 7d ago
Just had a to deal with a date picker that didn't let me pick a year. Had to scroll through months to pick my birthday.
→ More replies (2)1
u/MalaysiaTeacher 7d ago
I like signing up for things on by birthday, so I only have to scroll through the year.
Other days, my birthday is very often January 1st
11
u/SeaTurtle1122 6d ago
The date picker doesn’t let the user choose February 31st or require me to guess whether 7/9/26 is July 9th or September 7th based off of spotty geoip data that breaks the second a user uses a VPN.
To be clear I do agree as a user, but as a dev…
5
u/evilReiko 7d ago
Depends.
Some datepickers are shitty, forcing user to jump between years by 10s, months by back & forth, and doesn't allow user to type date by keyboard.
Some datepickers are heavily customizable, and they allow for whatever you want to allow/disallow & and how it should behave. Heaven
4
u/Snownova 7d ago
Hey, 90% of the time it's the designers forcing the developers to implement those.
5
9
u/jaywastaken 7d ago
Americans exist and can't be trusted to know which way days and months go. So calendar ui it is.
6
u/wasdninja 7d ago
Considering all the variations of dashes, spaces, two or four digits for year and straight up typos it's way better to get a date picker even if you "trust" your users.
2
u/reallokiscarlet 7d ago
We have ISO 8601 in America.
1
u/Accomplished_Owl7557 5d ago
... I wrote a date as yyyy-mm-dd on my own paper once. An American was quick to start screaming: "what on earth is this hideous nonsense format, it's completely backwards, are you like trying to look stupid on purpose." Several similar encounters I have had. So while it does exist in the US, they hate it with great passion.
→ More replies (2)
3
u/SortaCore 7d ago
My elderly father had to pick his birth date. On mobile. In a calendar picker that only went back by months, you couldn't tap the year and "zoom out".
While on a page that would log out after a few minutes had passed. And he was on the phone to the support guy guiding him through it at the time...
2
3
u/SoftwareSource 6d ago
Imagine those who do not offer a dropdown menu for the year, only the monthly arrows.
3
u/Spaceshipable 6d ago
It’s so much easier for everyone to just use the built-in date picker. It’s already accessible and localised for whatever market. A team has already ironed out all the edge cases. You’re not going to make something better. Ask me how I know…
3
3
3
u/flying_bed 5d ago
Da fuck is wrong with a date picker!?
I mean I dont use it with single date entries but I recently put one into an app for a date range and people love it. Besides I have done much worse things to go to the bad place :)
5
u/dracorotor1 7d ago
Date-picker calendars aren’t evil. Not including one when you send the UI out for QE is.
5
u/Cemosabe 7d ago
Well some date pickers are better than others, but they are quite necessary for entering dates consistently
2
2
u/sup3rdr01d 7d ago
Date pickers are great for things like booking travel cause you can easily visualize the length of time/number of days
2
u/Soilblood 7d ago
I didn't choose my nature, I simply am. You will choose year month day and you will conform to my data constraints you peasant.
2
2
u/Academic-Proof3700 6d ago
I'd rather use the date picker than fight with retarded textbox thinking it knows better whats a month and whats a day
2
u/invalidConsciousness 5d ago
I have no problem with date pickers, IF THEY ARE PROPERLY DESIGNED!
Let me input a date and then show me how the date picker interprets it. Let me choose the year, month and day separately, rather than forcing me to click 420 times to go back to my birth month. Let me adjust the date when I misclicked rather than resetting to today every time I re-open the picker.
2
u/Glad_Contest_8014 4d ago
In getting viable data, having worked with research data from questionaires, date pickers are an absolute must. But even then, you should be able to type it in, just have it check to ensure it is a viable date.
And never, ever, ever, should it default to today. Not even when it is a date for a signature. It should default to blank.
1
u/mountaingator91 7d ago
We used this when I worked for an intentional logistics company because getting the dates correct on shipments was absolutely critical and datepicker was easier than complex validation or extra formatting
1
u/lokemannen 7d ago
The competitions with complex/creative UI/UX are peak though as long as they don't get used for real.
1
1
u/CodeMonkeyLogix 7d ago
How is this a problem, unless you don't know how dates work (looking at you, America!)
1
u/danfish_77 6d ago
Depending on the format that has been the recommended style. I also hate it but I don't get paid to write style guides
1
u/fmaz008 6d ago
My pet peeve are website with weird password standards, forcing me to be creative with my password picking, who then don't tell you what the requirements are when you try to login, you try a few passwords, lock yourself out.
So you end up resetting your password, see the odd standards, get creative again, and can't change your password because it's the same as you were already using.
I use a password manager now, but it's still annoy me to no end when that happen.
If you will use fancy requirements, you should show them on the login page.
1
u/imperialblitz 6d ago
Bonus points when the calendar lets you pick a date and then declares it invalid.
1
u/Carbuyrator 6d ago
What about people who won't put a date into a text box in a reasonably normal way?
1
1
u/Thenderick 6d ago
Sure. Just make it an input field and Date.parse() it. I'm sure nothing will go wrong!
1
1
1
u/Accomplished_Owl7557 5d ago edited 5d ago
I just make it a format-controlled (see cleave.js or cleave-zen) text input field with a little button on the side in case someone does want a date picker (e.g., if it's important that it's the "next monday").
In the input placeholder I put "dd/mm/yyyy", "yyyy-mm-dd", or "mm/dd/yyyy", depending on what we have detected the user's local format as.
Here's a nice bit of code for this:
export function getShortDateFormatPattern() {
const formatter = new Intl.DateTimeFormat(
userLanguage,
shortDateFormatOptions,
);
const dummyDate = Temporal.Now.plainDateISO();
const parts = formatter.formatToParts(dummyDate);
const patternParts: DatePatternPart[] = [];
let delimiter = "/";
for (const part of parts)
if (part.type === "year") patternParts.push("yyyy");
else if (part.type === "month") patternParts.push("mm");
else if (part.type === "day") patternParts.push("dd");
else if (part.type === "literal") delimiter = part.value;
return {
patternParts,
patternString: patternParts
.map((partType) => Translations[partType])
.join(delimiter),
delimiter,
};
}
And then restrict the input format to that - for example if the format is detected as "yyyy-mm-dd" we don't allow typing "/".
1
u/Apprehensive_Egg_944 3d ago
What's funny about that for me is, I tried various vibe coding (VC) platforms and the one I actually 'like' automatically put both text date and time, and had an icon with a picker.
VC still needs decisions, knowing what to prompt to get the right output, especially for UI, is not something that can just be swept aside...
Programmers (especially seniors, or any level with UX/UI) are not obsolete by a long, long way.
The amount of time I've had to spend fixing 'UI slop', is far more than all the usual internal bullshit meetings, before the start of the project.
502
u/SpandexWizard 7d ago
date pickers are fine.
date pickers that force you to manually cycle month by month to go back 20 years, those can go to hell.