Перейти к содержимому


Партнерская программа Kredov

Работа с временем

#1 кипятильник

кипятильник
  • Пользователь
  • 102 сообщений
  • Репутация: 0
0

Отправлено 19 Август 2014 - 14:00

Здравствуйте,

как сделать что бы добавлять только время, мне нужно сделать шаг 30 минут

к примеру

00:00:00

00:30:00

01:00:00

01:30:00

и так до 23:30:00


 

 

  • 0

#2 Ixman

Ixman
  • Пользователь PRO
  • 2 165 сообщений
  • Репутация: 436

Отправлено 19 Август 2014 - 15:47

Возможно эта mktime() функция вам поможет 


  • 0

#3 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 19 Август 2014 - 16:15

Здравствуйте.

Примерно такой вариант возможен, если я верно понял задачу:

$start = '00:00:00';
$end = '23:30:00';
$interval = 30;

function time_add($start, $end, $interval, $break = 100){
	// $break отсчитывает максимальное кол-во итераций и необходима для избегания зацикливания
	$date = new DateTime($start);

	for($i = 0, $stop = 0; $date->format('H:i:s') < $end; $i = $interval, $stop++){
		if( $stop == $break ) break;
		$date->modify("+{$i} minutes");
		// $date->add(new DateInterval("PT{$i}M")); // или так с 5.3
		echo $date->format('H:i:s') . '<br>';
	}
}

time_add($start, $end, $interval);

Сообщение отредактировал matroskin8: 19 Август 2014 - 16:15

  • 0


#4 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 20 Август 2014 - 12:43

Большое спасибо!

сделал сам люблю когда все максимально просто

for($i=0; $i<48;$i++)
{
echo date('H:i:s', strtotime("00:00:00")+1800*$i).'<br>';
}

  • 0


Оформление форума – IPBSkins.ru