From 17fde56d8bfd37431e9278756309917d53770100 Mon Sep 17 00:00:00 2001 From: Benni Mack Date: Wed, 29 Mar 2023 15:51:53 +0200 Subject: [PATCH] [BUGFIX] Date ViewHelper should use strftime() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When having a % in the format, the strftime() method should be used from the DateFormatter. Resolves: #100350 Related: #95872 Releases: main Change-Id: I376382c22e11cef4e826c3cefcf114abbf6034f6 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/78323 Tested-by: Christian Kuhn Reviewed-by: Oliver Klee Tested-by: Stefan Bürk Reviewed-by: Stefan Bürk Tested-by: Oliver Klee Tested-by: core-ci Reviewed-by: Christian Kuhn --- .../Classes/ViewHelpers/Format/DateViewHelper.php | 2 +- .../ViewHelpers/Format/DateViewHelperTest.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php index 3fc3fdd852ad..0dd9ac2b8db1 100644 --- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php +++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php @@ -197,7 +197,7 @@ public static function renderStatic(array $arguments, \Closure $renderChildrenCl if (str_contains($format, '%')) { // @todo: deprecate this syntax in TYPO3 v13. $locale = $arguments['locale'] ?? self::resolveLocale($renderingContext); - return (new DateFormatter())->format($date, $format, $locale); + return (new DateFormatter())->strftime($format, $date, $locale); } return $date->format($format); } diff --git a/typo3/sysext/fluid/Tests/Functional/ViewHelpers/Format/DateViewHelperTest.php b/typo3/sysext/fluid/Tests/Functional/ViewHelpers/Format/DateViewHelperTest.php index 9b5a96920e0a..e5ab0701d23f 100644 --- a/typo3/sysext/fluid/Tests/Functional/ViewHelpers/Format/DateViewHelperTest.php +++ b/typo3/sysext/fluid/Tests/Functional/ViewHelpers/Format/DateViewHelperTest.php @@ -64,6 +64,16 @@ public function viewHelperRespectsCustomFormat(): void self::assertSame('01.02.1980', (new TemplateView($context))->render()); } + /** + * @test + */ + public function viewHelperAcceptsStrftimeFormat(): void + { + $context = $this->get(RenderingContextFactory::class)->create(); + $context->getTemplatePaths()->setTemplateSource('1980-02-01'); + self::assertSame('1980-02-01', (new TemplateView($context))->render()); + } + /** * @test */