diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index 0a5e15a923..3f44f830ef 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -66,6 +66,16 @@ sub dt_from_string { } my $regex; + + # The fallback format is sql/iso + my $fallback_re = qr| + (?\d{4}) + - + (?\d{2}) + - + (?\d{2}) + |xms; + if ( $date_format eq 'metric' ) { # metric format is "dd/mm/yyyy[ hh:mm:ss]" $regex = qr| @@ -87,14 +97,8 @@ sub dt_from_string { |xms; } elsif ( $date_format eq 'iso' or $date_format eq 'sql' ) { - # iso format is yyyy-dd-mm[ hh:mm:ss]" - $regex = qr| - (?\d{4}) - - - (?\d{2}) - - - (?\d{2}) - |xms; + # iso or sql format are yyyy-dd-mm[ hh:mm:ss]" + $regex = $fallback_re; } else { die "Invalid dateformat parameter ($date_format)"; @@ -124,6 +128,15 @@ sub dt_from_string { minute => $+{minute}, second => $+{second}, ); + } elsif ( $date_string =~ $fallback_re ) { + %dt_params = ( + year => $+{year}, + month => $+{month}, + day => $+{day}, + hour => $+{hour}, + minute => $+{minute}, + second => $+{second}, + ); } else { die "The given date ($date_string) does not match the date format ($date_format)";