use Mojo::JSON qw(to_json from_json);
use Mojo::Util qw(decamelize);
use Template;
+use DateTime;
+use DateTime::Format::MySQL;
+use DateTime::Format::ISO8601;
+use Data::Dumper;
sub register {
my ($self, $app, $conf) = @_;
sub _format_timestamp {
my $c = shift;
my $params = {};
+ my $user = $params->{user} || $c->stash('user');
if (!ref($_[0])) {
$params = {@_};
}
my $offset_sec = 0;
- if ($params->{user} && $params->{user}->{config}->{ui}->{offset_sec}) {
- $offset_sec = $params->{user}->{config}->{ui}->{offset_sec};
+ if ($user && $user->{config}->{ui}->{offset_sec}) {
+ $offset_sec = $user->{config}->{ui}->{offset_sec};
}
my $dt;
$dt = DateTime->from_epoch(epoch => $params->{from_epoch});
} elsif ($params->{datetime}) {
$dt = $params->{datetime}
+ } elsif ($params->{mysql}) {
+ $dt = DateTime::Format::MySQL->parse_datetime($params->{mysql});
} else {
return;
}
$dt->add(seconds => $offset_sec);
}
- my $format = $params->{format} || $params->{user} ? "user" : "simple";
+ my $format = $params->{format} || ($params->{user} ? "user" : "simple");
+ warn Dumper $params;
+ warn $format;
if ($format eq "simple") {
return $dt->strftime('%Y-%m-%d %H:%M:%S');
- } elsif ($format eq "user" && $params->{user}) {
- return $dt->strftime($params->{user}->{config}->{time_format});
+ }
+ elsif ($format eq "iso8601") {
+ return $dt->strftime('%Y-%m-%dT%H:%M:%S+00:00');
+ }
+ elsif ($format eq "user" && $user) {
+ return $dt->strftime($user->{config}->{time_format});
}
return;