From c641589e444ea5233632573bd8cd7968971fba23 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 11 Mar 2020 17:55:34 +0000 Subject: [PATCH] Bug 24850: Don't fallback when date_format is passed Signed-off-by: David Cook Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart --- Koha/DateUtils.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index fb1d0fa6d5..3f4406335f 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -59,6 +59,7 @@ sub dt_from_string { return if $date_string and $date_string =~ m|^0000-0|; + my $do_fallback = defined($date_format) ? 0 : 1; $tz = C4::Context->tz unless $tz;; return DateTime->now( time_zone => $tz ) unless $date_string; @@ -123,7 +124,7 @@ sub dt_from_string { (?\d{2}) : (?\d{2}) - (\.\d{1,3})?(([Zz])|((?[\+|\-])(?[01][0-9]|2[0-3]):(?[0-5][0-9]))) + (\.\d{1,3})?(([Zz]$)|((?[\+|\-])(?[01][0-9]|2[0-3]):(?[0-5][0-9]))) /xms; } elsif ( $date_format eq 'iso' or $date_format eq 'sql' ) { @@ -151,7 +152,7 @@ sub dt_from_string { )? )? |xms; - $regex .= $time_re; + $regex .= $time_re unless ( $date_format eq 'rfc3339' ); $fallback_re .= $time_re; my %dt_params; @@ -169,7 +170,7 @@ sub dt_from_string { if ( $+{offset} ) { $tz = DateTime::TimeZone->new( name => $+{offset} . $+{hours} . $+{minutes} ); } - } elsif ( $date_string =~ $fallback_re ) { + } elsif ( $do_fallback && $date_string =~ $fallback_re ) { %dt_params = ( year => $+{year}, month => $+{month}, -- 2.39.5