[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