diff --git a/lib/Webperl/Template.pm b/lib/Webperl/Template.pm index 50bd5f4..e444694 100644 --- a/lib/Webperl/Template.pm +++ b/lib/Webperl/Template.pm @@ -126,6 +126,7 @@ use Webperl::Utils qw(path_join superchomp); use Carp qw(longmess carp); use HTML::WikiConverter; use HTML::Entities; +use DateTime; use v5.12; use strict; @@ -899,13 +900,12 @@ sub ordinal { sub format_time { my $self = shift; my $time = shift; - my $format = shift; - # Fall back on the default if the user has not set a format. - $format = $self -> {"timefmt"} if(!defined($format)); - - my $datestr = strftime($format, localtime($time)); - $datestr =~ s/(\d+)\s*%o/ordinal($1)/ge; + my $format = shift // $self -> {"timefmt"}; + return "" unless($time); + my $datestr = eval { DateTime -> from_epoch(epoch => $time, time_zone = $self -> {"tz"} // "Europe/London") -> strftime($format); }; + return "" if($@); + return $datestr; }