date — Как найти конкретный день из года, указанный PHP?

Я ищу, как получить конкретный день от времени:

скажем, у меня есть 2 даты: с 1 января 2016 года по 1 января 2017 года мне нужно будет знать, сколько там понедельников, или вторников, или дней, которые я выберу на входе, который я дал.

Есть ли лучший способ добиться этого?

0

Решение

ОБНОВЛЕННЫЙ ОТВЕТ

<?php
$count = 0;
$days = array("Monday", "Friday");
foreach ($days as $day) {

$startDate = '1 Jan 2016';
$endDate = '1 Jan 2017';

$endDate = strtotime($endDate);
$i = '';
for ($i = strtotime($day, strtotime($startDate)); $i <= $endDate; $i = strtotime('+1 week', $i)) {
echo date('l Y-m-d', $i) . '<br>';
$count++;
}
}
echo $count;
2

Другие решения

Попробуйте изменить этот пример:

<?php
//http://php.net/manual/en/class.dateperiod.php#109846
$begin = new DateTime( '2012-08-01' );
$end = new DateTime( '2012-08-31' );
$end = $end->modify( '+1 day' );

$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);

foreach($daterange as $date){
//HERE ADD YOUR CONDITIONS...
echo $date->format("Ymd") . "<br>";
}
?>

Вы можете просмотреть это решение PHP создать диапазон дат

0

получить все дни и просмотреть их все, получить первый понедельник после даты начала и затем повторить 7 дней за раз:

    $endDate = strtotime($endDate);
for($i = strtotime('Monday', strtotime($startDate)); $i <= $endDate; $i =strtotime('+1 week', $i))
echo date('l Y-m-d', $i);
0
По вопросам рекламы [email protected]