Поскольку вы не явно указать в вашем вопросе, я предполагаю, что вы хотите создать часы и минуты.
Простой способ сделать это - сгенерировать значения как количество минут с полуночи ('06: 00 'равно 60 * 6, '23: 45' равно 23 * 60 + 45), а затем форматировать каждое значение как " час: минута»с помощью 2-значных номеров осталась проложенная с 0:
$list = array_map(
// format the values as hour:minute (2-digits, left padded with 0)
function ($item) {
$min = $item % 60; $hour = ($item - $min)/60;
return sprintf('%02d:%02d', $hour, $min);
},
// generate the list of values as number of minutes since midnight
range(6 * 60, 24 * 60 - 15, 15)
);
Другим способом сделать это состоит в использовании DateTime
объектов:
$start = new DateTime('06:00');
$end = new DateTime('23:45');
$step = new DateInterval('PT15M');
$list = array();
for ($date = $start; $date <= $end; $date->add($step)) {
$list[] = $date->format('H:i');
}
Пожалуйста, обратите внимание, что этот подход может потерпеть неудачу, если он работает на день, когда начинается или заканчивается летнее время. Это можно легко исправить, добавив в день, когда DST не меняется точно в строк, используемых для инициализации $start
и $end
:
$start = new DateTime('2016-01-01 06:00');
$end = new DateTime('2016-01-01 23:45');
Я использую MS Excel для таких вещей –
и читать данные там? Я хотел бы знать, функцию для заполнения массива со значениями непосредственно .. так что легче –
Покажите нам, что вы пытались – Epodax