#!/usr/bin/env perl use strict; use warnings; use lib 'lib'; use DateTime; use DateTime::Format::Human::Duration; use Time::Ago; use Time::Duration; my $hour = 60 * 60; my $day = $hour * 24; my $month = $day * 30; my @durations = ( 0, 38, 60 * 4, $hour * 3.8, $month * 7, $month * 23, $month * 28, ); my $class = 'Human::Duration'; foreach (@durations) { my $dt1 = DateTime->from_epoch(epoch => time - $_); my $dt2 = DateTime->from_epoch(epoch => time); my $diff = $dt2 - $dt1; print "Seconds: $_\n"; printf "%-25s %s\n", ' Time::Ago', Time::Ago->in_words($diff); print "\n"; my $class = ' Human::Duration'; printf "%-25s %s\n", "$class #1", DateTime::Format::Human::Duration->new->format_duration($diff); printf "%-25s %s\n", "$class #2", DateTime::Format::Human::Duration->new->format_duration( $diff, units => [qw/ years months /], ); printf "%-25s %s\n", "$class #3", DateTime::Format::Human::Duration->new->format_duration( $diff, precision => 'years', ); print "\n"; $class = ' Time::Duration'; printf "%-25s %s\n", "$class #1", Time::Duration::ago($_); printf "%-25s %s\n", "$class #1", Time::Duration::ago($_, 1); print "\n\n"; }