Как получить название дней между двумя датами в PHP?
Входные данные :
Дата начала: 01-01-2013
Дата окончания: 05-01-2013
Вывод:
вторник
среда
Четверг
пятница
суббота
Пробный код
$from_date ='01-01-2013'; $to_date ='05-01-2013'; $number_of_days = count_days(strtotime($from_date),strtotime($to_date)); for($i = 1; $i<=$number_of_days; $i++) { $day = Date('l',mktime(0,0,0,date('m'),date('d')+$i,date('y'))); echo "<br>".$day; } function count_days( $a, $b ) { $gd_a = getdate( $a ); $gd_b = getdate( $b ); $a_new = mktime( 12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year'] ); $b_new = mktime( 12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year'] ); return round( abs( $a_new - $b_new ) / 86400 ); }
Я видел сообщение « Поиск даты конкретного дня» между двумя датами PHP
Но у меня нет результата
пожалуйста, помогите мне
Используйте класс DateTime
, это будет намного проще:
$from_date ='01-01-2013'; $to_date ='05-01-2013'; $from_date = new DateTime($from_date); $to_date = new DateTime($to_date); for ($date = $from_date; $date <= $to_date; $date->modify('+1 day')) { echo $date->format('l') . "\n"; }
$from_date ='01-01-2013'; $to_date ='05-01-2013'; $start = strtotime($from_date); $end = strtotime($to_date); $day = (24*60*60); for($i=$start; $i<= $end; $i+=86400) echo date('l', $i);
<?php function printDays($from, $to) { $from_date=strtotime($from); $to_date=strtotime($to); $current=$from_date; while($current<=$to_date) { $days[]=date('l', $current); $current=$current+86400; } foreach($days as $key=> $day) { echo $day."\n"; } } $from_date ='01-01-2013'; $to_date ='05-01-2013'; printDays($from_date, $to_date); ?>
Прокручивайте каждый день между датами (включительно), а затем добавьте соответствующий день в массив, используя функцию date
. Распечатайте массив и таду! все готово!