Bug 13601: Add a fallback check for compability with existing code

There are a lot of places where the date comes from the DB but the
dateformat parameter is not set to 'sql'.
dt_from_string needs to fallback with this format if the pref format
does not match.

Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
Jonathan Druart 2015-01-20 15:49:39 +01:00 committed by Tomas Cohen Arazi
parent 29f3218c52
commit 526df1d126

View file

@ -66,6 +66,16 @@ sub dt_from_string {
}
my $regex;
# The fallback format is sql/iso
my $fallback_re = qr|
(?<year>\d{4})
-
(?<month>\d{2})
-
(?<day>\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|
(?<year>\d{4})
-
(?<month>\d{2})
-
(?<day>\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)";