Начиная с даты в этом формате: 2011-05-01 09:00:00
, как я могу создать массив, который содержит все рабочие часы (с 09:00 до 17:00) за все рабочие дни года (так исключая все Суббота и воскресенье). Я хочу приехать в это примерно так:
2011-05-01 09:00:00 2011-05-01 10:00:00 2011-05-01 11:00:00 2011-05-01 12:00:00 2011-05-01 13:00:00 2011-05-01 14:00:00 2011-05-01 15:00:00 2011-05-01 16:00:00 2011-05-01 17:00:00 //next day, starting at 09:00 and ending at 17:00 2011-05-02 09:00:00 ... 2011-05-02 17:00:00 //until the last day of the year from 09:00 to 17:00 2011-12-31 09:00:00 ... 2011-12-31 17:00:00
Дата начала будет первой в текущем месяце с 09:00 по времени, а самая последняя дата (последний элемент массива) всегда будет 17:00 в последний день года.
Опять же, выходные должны быть исключены.
Идея псевдокода: я подумал о чем-то вроде strtotime($start, "+1 one hour")
с проверкой на "if smaller than 17:00"
но, похоже, это не так просто.