From 27f6e28f5b3858497019097572351e2db948fce6 Mon Sep 17 00:00:00 2001 From: Stefan Kleff Date: Thu, 4 Jun 2020 13:47:59 +0200 Subject: [PATCH] DateTime validator support for trailing data --- .../Component/Validator/Constraints/DateTimeValidator.php | 6 ++++++ .../Validator/Tests/Constraints/DateTimeValidatorTest.php | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php b/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php index bad043f20e6ea..8d0350532dbf8 100644 --- a/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php +++ b/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php @@ -57,6 +57,12 @@ public function validate($value, Constraint $constraint) return; } + if('+' === substr($constraint->format, -1)) { + $errors['warnings'] = array_filter($errors['warnings'], function($warning) { + return 'Trailing data' !== $warning; + }); + } + foreach ($errors['warnings'] as $warning) { if ('The parsed date was invalid' === $warning) { $this->context->buildViolation($constraint->message) diff --git a/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php index 55bfe4514385d..8ff515772dbcc 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php @@ -128,4 +128,12 @@ public function getInvalidDateTimes() ['Y-m-d H:i:s', '2010-01-01 00:00:60', DateTime::INVALID_TIME_ERROR], ]; } + + public function testDateTimeWithTrailingData() + { + $this->validator->validate('1995-05-10 00:00:00', new DateTime([ + 'format' => 'Y-m-d+', + ])); + $this->assertNoViolation(); + } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy