Я не очень хорошо понимаю классы DatePeriod, DateInterval. Этот вопрос связан с другим - Как отобразить преобразованные часовые пояса в «общей неделе» (с воскресенья по субботу)? где я хочу параметризовать решение, предлагаемое артефакт.
Помощь приветствуется!
Это код артефакта:
$tz1 = new DateTimezone("Asia/Calcutta");
$indiaAvail = array(
new DatePeriod(new DateTime("2010-08-01 10:00:00", $tz1),
new DateInterval("PT2H15M"), 1)
);
Вот что я придумал:
function shift_timezones_onweek($from_timezone, $from_timebegin, $from_timeend, $to_timezone)
{
$tz1 = new DateTimezone($from_timezone);
$datetime1 = new DateTime("2010-08-01 $from_timebegin", $tz1);
$datetime2 = new DateTime("2010-08-01 $from_timeend", $tz1);
$interval = $datetime1->diff($datetime2);
$indiaAvail = array(
new DatePeriod($datetime1, $interval, 1)
);
...
Как указывает артефакт, «нет смысла создавать DatePeriod из двух раз только для того, чтобы сразу после этого разложить его на эти две даты», однако я не понимаю, как я могу легко изменить это, чтобы заставить его работать с остальной частью его кода ( который требует, чтобы $indiaAvail существовал, как я думаю...)