Ребята подскажите в таком вопросе:
Есть в скрипте (perl) переменная:
$d = `date +%Y"-"%m"-"%d`; (это сегодняшняя дата)
# вида 2003-10-04
нужно в переменной $yesterday получить 2003-10-03
а например в переменной $four_day_ago 2003-09-30
То есть вопрос по сути как в таких случаях действовать
со вычитанием/прибавлением дат?
Подскажите пожалуйса.
Пользуйся функцией time и localtime.$today = time; # (текущее время в секундах)
$fourdaysago=$today - 86400*4 ; #86400 секунд в сутках * 4($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($fourdaysago);
Вот, собственно и всё.
еще глянь в сторону
use Date::Pcalc qw(:all);
Добрый ДеньВечерНочерПо простому:
Переводишь свое время (2003-10-04) в секунды при помощи timelocal
затем вычитаешь от полученного чила нужное количество к примеру сутки 60*60*24
результат вычитания переводишь обратно в дату.Вот небольшой пример подобного вычисления
#=============================================================
# вычисляет диапазон в сек между двумя датами/временем
sub TimeRange{
use Time::Local;my (@par)=@_;
local $st,$et;
## localtime(sec,min,hour,day,mon,year)
$st=timelocal(@par[2],@par[1],@par[0],@par[3],(@par[4]-1),(@par[5]-1900));
$et=timelocal(@par[8],@par[7],@par[6],@par[9],(@par[10]-1),(@par[11]-1900));return int(($et-$st)/60); #возвращаем колво минут
}
#=============================================================
>Ребята подскажите в таком вопросе:
>Есть в скрипте (perl) переменная:
>$d = `date +%Y"-"%m"-"%d`; (это сегодняшняя дата)
># вида 2003-10-04
>нужно в переменной $yesterday получить 2003-10-03
>а например в переменной $four_day_ago 2003-09-30
>То есть вопрос по сути как в таких случаях действовать
>со вычитанием/прибавлением дат?
>Подскажите пожалуйса.
>
man date на предмет -v +|-