[Moscow.pm] дата в секндах в 4 часа утра сегодня в одну строчку
Nikolay Mishin
mi на ya.ru
Ср Сен 21 04:08:29 PDT 2011
выполняю на сервере
perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )'
1316570400
полученную цифру ввожу http://www.onlineconversion.com/unix_time.htm
получаю
Wed, 21 Sep 2011 02:00:00 GMT
то, что мне нужно 2 часа по Лондону - это 4 по Франкфурту ,
меня этот результат устраивает
я все равно его буду сравнивать с perl -e "print time"
1316603097
echo $((1316603097-1316570400))
32697
и, если сейчас 13:00 , то
echo $((32697/3600))
9
часов прошло с 4 утра - все верно
21.09.2011, 14:53, "Nikita Zubkov" <nikzubkov на gmail.com>:
> Этот код выведет 4 утра по Гринвичу, а не локальному времени.
>
> 21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай
> Александрович <STork2000 на yandex.ru> написал:
>
>> print int(time / 86400)*86400+14400;
>>
>> 21.09.2011, 13:10, "Nikolay Mishin" <mi на ya.ru>:
>>> Hi Moscow.PM
>>>
>>> Как можно написать число секунд в 4 часа утра сегодня в одну строчку
>>>
>>> use Time::Local;
>>> my $time = time;
>>> my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST
>>> ) = gmtime($time);
>>> my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear,
>>> $IsDST );
>>> my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual
>>> print $tom1am;
>>>
>>> получается так
>>> perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600'
>>>
>>> а можно еще короче?
>>>
>>> Nikolay Mishin
>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>> --
>> С Уважением, Login|off Николай Александрович.
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
> --
> С уважением,
> Никита Зубков
> тел: +7 (915) 082-76-80
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Nikolay Mishin
Подробная информация о списке рассылки Moscow-pm