Stop being the product.
Become the owner.
or
sign uplog in
JavaScript's date parser is out of control and needs to be stopped

I recently spent an afternoon learning that JavaScript has a very generous definition of "date."

new Date("2020-01-23")
// Wed Jan 22 2020 19:00:00 GMT-0500

Makes sense. ISO format, midnight UTC, so it shows up as January 22 in the Western Hemisphere.

new Date("Today is 2020-01-23")
// Thu Jan 23 2020 00:00:00 GMT-0500

OK, it pulled the date out of a sentence, which might be helpful in some cases. And interestingly, the time shifted, which is a little odd.

new Date("Route 66")
// Sat Jan 01 1966 00:00:00 GMT-0500

It thinks "Route 66" is referring to the year 1966? That's definitely a stretch.

new Date("Beverly Hills, 90210")
// Mon Jan 01 90210 00:00:00 GMT-0500

Year 90,210? Are you kidding me?!

Turns out that most popular JavaScript engines have legacy parsers that really, really want to help you parse dates.

We had a bug in our app were addresses and business names were being displayed as dates. The reason was that we were using the `Date` constructor as a fallback parser to catch unexpected formats. The fix was simple, but the bug made us laugh when we first saw it. And we learned to not treat the `Date` constructor as a validator.

Full blog post which explains the parsing logic: https://futuresearch.ai/blog/javascript-thinks-everythings-a-date/
#programming #technology #dev
earnings
3,000 mlx total
$0  total
engagement
3 views
0 reactions
0 comments