Commit c4ebcd9
Increase CanValidateDateTimeTest invalid data test coverage
This change is to ensure `Respect\Validation` is intentional about the
DateTime formats.
For context the [ISO 8601][] standard says that we shouldn't accept
`-00:00` (or anything similar) offsets.
I noticed that there was an a [change][] in how
`CanValidateDateTime.php` behaved from v2.2 to v2.3.
Prior to v2.3 date time formats of `2018-01-30T19:04:35-00:00` (note the
-00:00) would pass validation. After updating to v2.3 the format is not
accepted.
This is because the `DateTime::createFromFormat` accepts the `$value`
of `2018-01-30T19:04:35-00:00` but internally converts the `-00:00` to
`+00:00`
```
$formattedDate = DateTime::createFromFormat(
$format,
$value,
new DateTimeZone(date_default_timezone_get())
);
```
This in turn causes the validation around
`$value !== $formattedDate->format($format))` to fail
```
if ($formattedDate === false || $value !== $formattedDate->format($format)) {
return false;
}
```
[ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601#Other_time_offset_specifications
[change]: 5fe4b961 parent de9e310 commit c4ebcd9
1 file changed
+4
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
0 commit comments