четверг, 3 июня 2010 г.

Тихие омуты PHP

Запустила скрипт, который должен был обсчитать все дневные свечки волатильности по разным инструментам. Когда писала скрипт - протестировала его на небольшом промежутке времени, убедилась, что все работает правильно и запустила обсчитывать год. Но скрипт странным образом подвис, и я даже представить себе не могла, в чем может быть проблема. Стала отлаживать по кускам. Удивительное дело: на определенных участках (разных по продолжительностью и с разными начальными датами) он работал отменно, а вот на участке, захватывающем дату "2009-10-25", - отказывался. Промониторила по шагам небольшой участок с этим днем в середине.

В скрипте дни инкрементировались так:
$currDate2 = date('Y-m-d',strtotime($currDate)+60*60*24);

(да, неуклюже, просто осталось после формирования часовых свечек - изменила формат и умножила количество часов на 24 :) ).

И вот в этом участке скрипт спотыкался и не шел дальше. Я уже даже набирала в гугле php magic 2009-10-25, но, видимо, такие обстоятельства возникли почему-то только у меня. В общем, мистика. И все решилось благополучно после того, как я стала инкрементировать по дням напрямую:
$currDate2 = date( 'Y-m-d',  strtotime($currDate.' +1 day') );

Комментариев нет: