July 2015 Archives

Simple and efficient formatting of relative date/time using Time::Moment

#!/usr/bin/perl
use warnings;

use Carp              qw[];
use Time::Moment 0.19 qw[];

sub YEAR   () { 365.2425    }
sub MONTH  () { YEAR / 12   }
sub DAY    () { 1           }
sub HOUR   () { DAY / 24    }
sub MINUTE () { HOUR / 60   }
sub SECOND () { MINUTE / 60 }

sub ago {
    @_ == 1 or Carp::croak(q/Usage: ago(moment)/);
    my ($moment) = @_;

    my $now = Time::Moment->now;

    ($now->compare($moment) >= 0)
      or Carp::croak(q/Given moment is in the future/);

    my $d = $now->mjd - $moment->mjd;

    if ($d  0.75 * DAY) {
        if ($d…

About Christian Hansen

user-pic I blog about Perl.