in reply to Re: How to subtract date by 1 day
in thread How to subtract date by 1 day
If by day, the OP means 24 hours, that's fine. If he just wants to move back the date one day without changing the time, your solution is wrong since not every day has 24*60*60 seconds. Use timegm+gmtime to do date manips.
use POSIX qw( strftime ); use Time::Local qw( timegm ); my ($d,$m,$y) = (localtime())[3,4,5]; print(strftime("%Y_%m_%d\n", gmtime(timegm(0,0,0,$d,$m,$y) - 24*60*60) ));
With time:
use POSIX qw( strftime ); use Time::Local qw( timegm ); my ($sec,$min,$hour,$d,$m,$y) = localtime(); ($d,$m,$y) = (gmtime(timegm(0,0,0,$d,$m,$y) - 24*60*60))[3,4,5]; print(strftime("%Y_%m_%d_%H_%M_%S\n", $sec,$min,$hour,$d,$m,$y));
|
---|