Re: Есть ли переменные даты?

Vladimir V. Perepelitsa inthrax на gmail.com
Вс Фев 14 04:21:49 MSK 2010


По моему использование модулей для такой задачи это перебор. Скоро для
вывода строчки вместо print будут использовать какой-нибудь
IO::Sys::Print->out()

1. локальное время при помощи localtime (perldoc -f localtime)
sub { my @x = localtime; return sprintf "%04u-%02u-%02u
%02u:%02u:%02u", $x[5]+1900, $x[4]+1, $x[3], $x[2],$x[1],$x[0] }

2. время по GMT при помощи gmtime (perldoc -f gmtime)
sub { my @x = gmtime; return sprintf "%04u-%02u-%02u %02u:%02u:%02u",
$x[5]+1900, $x[4]+1, $x[3], $x[2],$x[1],$x[0] }

3. Если очень хочется объекты, то можно и Time::localtime, но так
(чтобы избежать смены дат):
sub { use Time::localtime; my $t = localtime; return sprintf
"%04u-%02u-%02u", $t->year+1900,$t->mon+1,$t->mday }

4. Использование DateTime оправдано будет только в том случае, если
будет интенсивная работа с таймзонами или с калькуляцией дат

2010/2/10 Andrey Zloy <andrey.zloy at gmail.com>:
> Эт верно, может ) Тогда
>
> $dt = DateTime->now;
> $year   = $dt->year;
> $month  = $dt->month;
>
> http://search.cpan.org/~drolsky/DateTime-0.53/lib/DateTime.pm
>
> 10 февраля 2010 г. 13:19 пользователь Sergey Averyanov
> <averyanov at gmail.com> написал:
>> BTW так нельзя делать.
>> Между вызовом
>> $r->variable("month", localtime->mon);
>> и
>> return(localtime->mday)}';
>> может попасть смена даты.
>> В итоге вместо 31 января получится 1 января.

-- 
Best wishes,
Vladimir V. Perepelitsa aka Mons <inthrax at gmail.com>


Подробная информация о списке рассылки nginx-ru