PM means post meridiem. That's Latin, but you don't have to remember it. If you simply remember the P means 'post', and the 'M' means the exact middle of the day (12 noon) then you know 12 PM is 12.00 (after noon hence afternoon) and 12 AM is after midnight or 0.00 (the hour after previous day's 23.00 / 11 PM). Then you just need to remember morning is AM, afternoon is PM, evening is PM, and night is AM. That's it. Yeah, I find 24H system easier, but its what my native locale uses, so I am biased... (as is everyone else)
This is in fact so simple to remember that street signs in San Francisco, where AM/PM is native, use 11:59am/pm or 12:01 and never 12:00 to avoid ambiguity. Street cleaning from 12:01am to 3:00am, for example.
Only thing to remember there is: .00 means new hour. Which the number before .00 denotes.
Caters to lowest common denominator.
I had all this explained on elementary school (which was boring and slow as fuck) during English class, and we don't even use 12H system in The Netherlands. It is quite frankly as simple to remember as a logic (tho not necessarily common) grammar rule.
Yes, I'm not trying to claim that AM/PM is ambiguous, but that me as a person not used to the system (basically everyone except US and a few other countries) have no idea which is which. :)
A native Floridian once told me that the New Year's fireworks display would be starting at “12 PM”. Confused about why they’d be shooting off fireworks in the middle of the day I said, “12 PM!?” She rolled her eyes and made air quotes with her fingers and said, “Well, AM”, as if I was being extremely pedantic. To her, AM meant morning and PM meant night.
Having worked on the UI of an event-related service, I can say the error rate is much lower if you go with the ‘11:59’ workaround. In addition to the confusion about whether 12 PM is 00:00 or 12:00, there’s confusion about which calendar day 12 AM falls on. When does a Friday midnight movie start? 99.9% of people will show up at the end of Friday, but in a literal user interface you’d have to choose 12 AM Saturday. I thought of fireworks girl very frequently when I worked on that UI.
"Midnight" doesn't solve the second part of GP's problem:
> In addition to the confusion about whether 12 PM is 00:00 or 12:00, there’s confusion about which calendar day 12 AM falls on. When does a Friday midnight movie start? 99.9% of people will show up at the end of Friday, but in a literal user interface you’d have to choose 12 AM Saturday.