From dc1eb56edf50c90a6f9504a4735fbbfee3519f2d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 17 Mar 2015 09:44:30 +0100 Subject: [PATCH] Bug 13601: The fallback regex should contain the time part MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit On displaying a sql date, if the dateformat is not set to sql, the output should contain the date. In the previous version, the fallback regex (used for sql format) did not included the time part (hh:mm:ss). Checked out an item with due date an ddue time. Time displays as expected. Signed-off-by: Marc Véron Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi --- Koha/DateUtils.pm | 4 +++- t/DateUtils.t | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index 3f44f830ef..7a98120511 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -105,7 +105,7 @@ sub dt_from_string { } # Add the faculative time part [hh:mm[:ss]] - $regex .= qr| + my $time_re .= qr| ( \s* (?\d{2}) @@ -117,6 +117,8 @@ sub dt_from_string { )? )? |xms; + $regex .= $time_re; + $fallback_re .= $time_re; my %dt_params; if ( $date_string =~ $regex ) { diff --git a/t/DateUtils.t b/t/DateUtils.t index 7705fd4b00..1af4268764 100755 --- a/t/DateUtils.t +++ b/t/DateUtils.t @@ -3,7 +3,7 @@ use DateTime; use DateTime::TimeZone; use C4::Context; -use Test::More tests => 54; +use Test::More tests => 55; use Test::MockModule; use Time::HiRes qw/ gettimeofday /; use t::lib::Mocks; @@ -211,3 +211,7 @@ is( output_pref( { dt => $dt } ), '31/01/2015 12:34', 'dt_from_string should mat # date before 1900 $dt = dt_from_string('01/01/1900'); is( output_pref( { dt => $dt, dateonly => 1 } ), '01/01/1900', 'dt_from_string should manage date < 1900' ); + +# fallback +$dt = dt_from_string('2015-01-31 01:02:03'); +is( output_pref( {dt => $dt} ), '31/01/2015 01:02', 'dt_from_string should fallback to sql format' ); -- 2.39.5