assert icon indicating copy to clipboard operation
assert copied to clipboard

date does not work with variable precision of microseconds

Open bendavies opened this issue 6 years ago • 1 comments

Hi,

Assertion::date('2019-10-31 14:08:46.429', 'Y-m-d H:i:s.u') will not work formatting the resulting date will not be the same as the input string: https://github.com/beberlei/assert/blob/99508be011753690fe108ded450f5caaae180cfa/lib/Assert/Assertion.php#L2396

2019-10-31 14:08:46.429 will be formatted as 2019-10-31 14:08:46.429000. These dates are equivalent.

A different method is needed to compare the dates.

A better check would be

$errors = \DateTime::getLastErrors();

if (0 < $errors['warning_count'] || 0 < $errors['error_count']) {
 //invalid
}

bendavies avatar Dec 06 '19 15:12 bendavies

Same issue with DATE_RFC3339 format.

If input is '2021-10-20T10:00:00Z' which is valid, but the output of $dateTime->format will be '2021-10-20T10:00:00+00:00' so the assertion fails unexpectedly.

mvanduijker avatar Aug 03 '23 11:08 mvanduijker