From 7656cffa9ae1d77eb268f7fb2af3523108c2f857 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 --- Koha/DateUtils.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index cc474a6ddb..594caad046 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -53,6 +53,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; @@ -117,7 +118,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' ) { @@ -141,7 +142,7 @@ sub dt_from_string { )? )? |xms; - $regex .= $time_re; + $regex .= $time_re unless ( $date_format eq 'rfc3339' ); $fallback_re .= $time_re; my %dt_params; @@ -157,7 +158,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.20.1