validatorjs / validator.js

String validation
MIT License
23.12k stars 2.31k forks source link

`isDate` validation is broken after upgrading to validator v13.11.0 #2256

Closed tomaspanek closed 6 months ago

tomaspanek commented 1 year ago

Describe the bug

After upgrading to version 13.11.0, the validation of date strings stopped working as expected.

Examples

Here is a demonstration that compares the validation results between v13.11.0 and v13.9.0 Issue demonstration

Additional context Validator.js version: 13.11.0 Node.js version: 18.17.0 OS platform: macOS

brunoabude commented 1 year ago

Looks like the Date constructor is now using the ISO8601 date format without the time zone offset info, which causes it to be interpreted as UTC+0 and can fail the comparison of .getDate() and the parsed day from the date string (which could be safely assumed to be in local time, i guess?)

To keep the same behaviour as the previous version, T00:00:00 could be concatenated to the isoformat, which will cause it to be interpreted as local time. As demonstrated here

https://github.com/validatorjs/validator.js/blob/f074abdd851d56c8425bc14aec41049eb26b041e/src/lib/isDate.js#L68

tomaspanek commented 1 year ago

Thanks, @brunoabude! Just submitted a pull request that would solve the timezone issues as you suggested.

sacummings91 commented 1 year ago

Can confirm this was breaking for us too. It was tricky to debug cuz it worked in our CI just fine but was failing locally. Rolling back to 13.9.0 for now to solve the issue until the fix goes in.

gabdara commented 1 year ago

I have the same problem on macOS, seems to work on other platforms though. reverted to 13.9.0 for now.

Achilles718611 commented 9 months ago

When are we going to have next release? Due to this issue, I can't use the latest version.

brendengerber commented 9 months ago

@Achilles718611 Also wondering this, I just downgraded to 13.9.0 and everything is working for me in the meantime

ThiefMaster commented 7 months ago

A bugfix release would be HIGHLY appreciated! :)

WikiRik commented 6 months ago

This should be fixed in v13.12.0 which will be released after #2269 is merged

profnandaa commented 6 months ago

Now released - https://www.npmjs.com/package/validator/v/13.12.0