Автор Тема: работа с датой в perle, помогите  (Прочитано 3760 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mstf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
работа с датой в perle, помогите
« : 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, то есть при простом прибавлении или вычитании мы не заботимся о правильности даты команада сама все делает. Есть ли такое в перле. Чтото ничего не нашел. Согласен, что все можно вычислить вручную, но если есть такая функция, то оно надежней будет.
 Помогите кто может

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
работа с датой в perle, помогите
« Ответ #1 : 24 Декабря 2003, 23:23:32 »
Если выполняешь вычисления только с целыми днями, то юзай 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

И будеттебе Щастье! :-)

Оффлайн mstf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
работа с датой в perle, помогите
« Ответ #2 : 25 Декабря 2003, 01:28:37 »
Спасибо
И еще вопрос, а если какой нибудь другой способ, ну чтобы чтото похожее, но только не ставить дополнительные модуля, а то боюсь на сервере не позволят этого делать

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
работа с датой в perle, помогите
« Ответ #3 : 25 Декабря 2003, 01:29:32 »
Думаю что только ручками ...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
работа с датой в perle, помогите
« Ответ #4 : 25 Декабря 2003, 02:54:02 »
в пхп так никто никогда не делает.
Все вычисления с датой делаются в самой базе.

впрочем, для того, чтобы прибавить к таймстампу некое количество дней, не нужно никаких модулей, а только понимание этой простой вещи и чуть-чуть арифметики.

Оффлайн mstf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
работа с датой в perle, помогите
« Ответ #5 : 25 Декабря 2003, 06:34:13 »
RomikChef
я не говорил, что я с БД работаю, а насчет таймстампа - это конечно тоже воспринималось как вариант, просто хотелось узнать еще варианты

Всем спасибо

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28