|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Nikolay Pichtin 2:5056/30 18 Aug 2005 23:24:19 To : Vladimir Marunin Subject : Re: вот хотел спросить у общественности -------------------------------------------------------------------------------- >> A> дату изменить текущую на определенное количество дней >> A> я вот так в лобсделал но сие не красиво >> A> и потом формат не совпадает для однозначных дат получается >> A> 2005-08-1 >> A> а надо бы 2005-08-01 >> >> A> $datestamp = strftime "%Y-%m-%d_%H:%M:%S", localtime; >> A> print $datestamp, "\n"; >> >> A> my $date_tek_y_m = strftime "%Y.%m.", localtime; >> A> my $date_tek_d = strftime "%d", localtime; >> A> my $d=1; >> A> $date_tek = $date_tek_y_m.($date_tek_d-$d); >> >> A> print $date_tek, "\n" ; >> >> Если тебе надо просто получеть строку с исомой датой, то просто >> localtime прибавляешь или отнимаешь колшичествао дней * 86400 и >> выводишь в нужном формате $time = localtime + (86400 * >> $d); $datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time; print >> $datestamp, "\n"; VM> Hепарвда твоя. Далеко не во всех сутках 86400 секунд. Дважды в год VM> это не верно (переход с зимнего на летнее время и наоборот), поэтому VM> если сейчас время около полуночи (от 23:00 до 01:00) то такая схема VM> может дать ошибку на сутки. VM> Или возьми нормальный модуль для работы с данными (лучше), VM> либо проверяй время на полночь, например так: VM> $time = time() + (86400 * $d) +(12 - (localtime())[2] )*3600; VM> datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time; VM> Тут идея в том, чтобы брать середину суток (я вычитаю текущие часы и VM> прибавляю 12). Так будет? use POSIX qw(strftime); use constant DAY => 3; $datestamp = strftime "%d-%m-%Y %H:%M:%S\n", Day_sub(DAY); sub Day_sub($) { return localtime( time - (86400 * shift) +(12 - (localtime())[2] )*3600); } * Хвастовство - признак неуверенности. Грубость - признак бессилия. Hадежда на пользу от их проявления - признак глупости. -- Hиколай ---------------------------------------------------------------------- --- * Origin: Истина - это вовсе не то, что можно убедительно доказать (2:5056/30) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1813430518fc.html, оценка из 5, голосов 10
|