From 694e6bebfd98a45fc427a2a0aeb44bcf69cb7727 Mon Sep 17 00:00:00 2001 From: Robin Sheat Date: Fri, 27 Jul 2012 11:34:17 +0200 Subject: [PATCH] Bug 8391: prevent error when viewing circ history with bad dates Sometime the circ history will contain "0000-00-00" as a returndate when an item was lost rather than returned. This currently causes an error when attempting to parse the dates, this patch causes an empty string to be returned instead. Note: a future enhancement should distinguish between "no date provided" and "invalid date provided" to allow distinctions to be made. Signed-off-by: Kyle M Hall --- Koha/DateUtils.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index e2e92bd494..f8e7e005ce 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -80,6 +80,7 @@ sub dt_from_string { } elsif ( $date_format eq 'sql' ) { $date_string =~ s/(\d{4})(\d{2})(\d{2})\s+(\d{2})(\d{2})(\d{2})/$1-$2-$3T$4:$5:$6/; + return if ($date_string =~ /^0000-00-00/); $date_string =~ s/00T/01T/; } } @@ -158,7 +159,8 @@ sub format_sqldatetime { my $force_pref = shift; # if testing we want to override Context if ( defined $str && $str =~ m/^\d{4}-\d{2}-\d{2}/ ) { my $dt = dt_from_string( $str, 'sql' ); - $dt->truncate( to => 'minutes' ); + return q{} unless $dt; + $dt->truncate( to => 'minute' ); return output_pref( $dt, $force_pref ); } return q{}; -- 2.39.5