Avoid use of POSIX strftime to help with timezones
This commit is contained in:
parent
826b1e5d94
commit
ea0a3643c8
@ -126,6 +126,7 @@ use Webperl::Utils qw(path_join superchomp);
|
|||||||
use Carp qw(longmess carp);
|
use Carp qw(longmess carp);
|
||||||
use HTML::WikiConverter;
|
use HTML::WikiConverter;
|
||||||
use HTML::Entities;
|
use HTML::Entities;
|
||||||
|
use DateTime;
|
||||||
use v5.12;
|
use v5.12;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
@ -899,13 +900,12 @@ sub ordinal {
|
|||||||
sub format_time {
|
sub format_time {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $time = shift;
|
my $time = shift;
|
||||||
my $format = shift;
|
my $format = shift // $self -> {"timefmt"};
|
||||||
# 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;
|
|
||||||
|
|
||||||
|
return "" unless($time);
|
||||||
|
my $datestr = eval { DateTime -> from_epoch(epoch => $time, time_zone = $self -> {"tz"} // "Europe/London") -> strftime($format); };
|
||||||
|
return "" if($@);
|
||||||
|
|
||||||
return $datestr;
|
return $datestr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user