我正在研究如何在特定的日子里得到:
让我们说我有两个日期:2016年1月1日至2017年1月1日,我需要知道有多少个星期一,或星期二或我在输入中选择的任何日子。
有没有最好的方法来实现这个目标?
答案 0 :(得分:2)
更新的答案
<?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;
答案 1 :(得分:0)
尝试修改此示例:
<?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 create range of dates
答案 2 :(得分: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);