Forum Webscript.Ru
Программирование => Perl => Тема начата: mstf от 24 Декабря 2003, 20:47:18
-
Помогите сделать такое
В пхп есть такая вещь как автоматическое вычисление даты к примеру в коде ниже (на пхп)
$ns = "2003-12-23 23:32:45";
$dp = explode (" ",$ns);
$dpd = explode ("-",$dp[0]);
$dpt = explode (":",$dp[1]);
$expd = date("Y-m-d H:i:s", mktime ($dpt[0],$dpt[1],$dpt[2],$dpd[1],$dpd[2]+30,$dpd[0]) );
Так вот в команде mktime в последней строке мы элементу массива $dpd[2] (которому соответствует 23) прибавляем 30, и команда видя, что итоговое число 53, сама увеличивает месяц на 1, ставит день 23, но и месяц больше положенных 12, поэтому и год увеличивается а месяц ставиться 1, то есть при простом прибавлении или вычитании мы не заботимся о правильности даты команада сама все делает. Есть ли такое в перле. Чтото ничего не нашел. Согласен, что все можно вычислить вручную, но если есть такая функция, то оно надежней будет.
Помогите кто может
-
Если выполняешь вычисления только с целыми днями, то юзай Add_Delta_Days:
use Date::Calc qw(Add_Delta_Days);
($y2,$m2,$d2) = Add_Delta_Days($y,$m,$d,$offset);
Причем $offset может представлять собой как положительное кол-во дней, так и отрицательное!
Если с минутами и секундами то:
use Date::Calc qw(Add_Delta_DHMS);
($year2,$month2,$day2,$h2,$m2,$s2)=Add_Delta_DHMS($year,$month,$day,$hour,$minute,$seconds,$day_offset,$hour_offset,$minute_offset,$seconds_offset);
модуль поставь дополнительно, он не входит в стандартную поставку:
ppm install Date::Calc
И будеттебе Щастье! :-)
-
Спасибо
И еще вопрос, а если какой нибудь другой способ, ну чтобы чтото похожее, но только не ставить дополнительные модуля, а то боюсь на сервере не позволят этого делать
-
Думаю что только ручками ...
-
в пхп так никто никогда не делает.
Все вычисления с датой делаются в самой базе.
впрочем, для того, чтобы прибавить к таймстампу некое количество дней, не нужно никаких модулей, а только понимание этой простой вещи и чуть-чуть арифметики.
-
RomikChef
я не говорил, что я с БД работаю, а насчет таймстампа - это конечно тоже воспринималось как вариант, просто хотелось узнать еще варианты
Всем спасибо