Начиная с даты в этом формате: 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"
, но все не так просто.