Almost-minimal filesystem based blog.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

78 lines
1.3 KiB

package App::WRT::Date;
use strict;
use warnings;
use base qw(Exporter);
our @EXPORT_OK = qw(iso_date get_mtime month_name);
use POSIX qw(strftime);
=head1 NAME
App::WRT::Date - a small collection of date utility functions
=head2 FUNCTIONS
=over
=item iso_date($time)
Return an ISO 8601 date string for the given epoch time.
=cut
sub iso_date {
my ($time) = @_;
return strftime("%Y-%m-%dT%H:%M:%SZ", localtime($time));
}
=item get_mtime(@filenames)
Return one or more mtimes for a given list of files.
=cut
sub get_mtime {
my (@filenames) = @_;
my @mtimes;
for my $filename (@filenames) {
#my( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
# $atime, $mtime, $ctime, $blksize, $blocks )
# = stat( $filename );
push @mtimes, (stat $filename)[9];
}
# return a list if we've got more than one, a scalar
# otherwise. is this evil? or even necessary?
if (@mtimes > 1) {
return @mtimes;
} else {
return $mtimes[0];
}
}
=item month_name($number)
Turn numeric months into English names.
=cut
{
# "Null" is here so that $month_name[1] corresponds to January, etc.
my @months = qw(Null January February March April May June
July August September October November December);
sub month_name {
my ($number) = @_;
return $months[$number];
}
}
=back
=cut
1;