Zeitrechnung mit Perl?

fragger1991

New Member
Hallo,

wie kann ich in Perl von einer bestehenden Zeit 5 Tage abziehen, so das er auch Automatisch auf den 31.03. statt auf den 00.04 geht?

Von PHP her kenne ich es ja das man dann einfach die Sekunden vom Timestamp abzieht aber bei Perl ist das irgendwie etwas anderster :D

Mein bisheriger Code:
Code:
#!/usr/bin/perl

use FindBin;
use lib "$FindBin::Bin/..";
require 'ispcp_common_code.pl';

use strict;
use warnings;

sub get_human_date_rev {

	push_el(\@main::el, 'get_human_date()', 'Starting...');

	my ($sec, $min, $hour,$mday, $mon, $year,$wday, $yday) = localtime;

	$year += 1900;
	$mon += 1;
	$mday -= 5;
	$mday = '1' if ($mday == 0);
	$mon = '0'.$mon if ($mon < 10);
	$mday = '0'.$mday if ($mday < 10);
	$hour = '0'.$hour if ($hour < 10);
	$min = '0'.$min if ($min < 10);
	$sec = '0'.$sec if ($sec < 10);

	push_el(\@main::el, 'get_human_date()', 'Ending...');

	return "$year.$mon.$mday-$hour$min$sec";
}

	my $date = get_human_date_rev();
print $date;

Vielen Dank!
 
time() liefert die Anzahl Sekunden. Davon einfach 5*86400 abziehen. Das kannst du dann als Parameter in localtime() füttern:

Code:
% perl -e 'print scalar(localtime(time-(5*86400))), "\n";'
Thu Mar 31 20:16:07 2011
 
Back
Top