#!/usr/bin/perl -w use strict; print 'Now: ', &formatTime(str => scalar localtime(time() - 0)), "\n"; print 'Before 1 hour: ', &formatTime(str => scalar localtime(time() - 3600)), "\n"; print 'Before 6 hours: ', &formatTime(str => scalar localtime(time() - 21600)), "\n"; sub formatTime(%) { my %args = @_; $args{'str'} ||= ''; # e.g. Mon Jul 3 12:59:28 2006 my @elems = (); foreach (split / /, $args{'str'}) { next unless $_; push(@elems, $_); } my ($weekday, $month, $mday, $time, $yyyy) = split / /, join(' ', @elems); my %months = ( Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5, Jun => 6, Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11, Dec => 12 ); my $s = substr($time, 6,2); my $m = substr($time, 3,2); my $h = substr($time, 0, 2); my $dd = sprintf('%02d', $mday); my $mm_num = sprintf('%02d', $months{$month}); #my $formatted = "$yyyy\-$mm_num\-$dd $h:$m:$s"; my $formatted = "$yyyy$mm_num$dd$h$m$s"; $formatted; }