如何找到PHP给出的具体日期?

时间:2016-02-03 05:33:38

标签: php date days

我正在研究如何在特定的日子里得到:

让我们说我有两个日期:2016年1月1日至2017年1月1日,我需要知道有多少个星期一,或星期二或我在输入中选择的任何日子。

有没有最好的方法来实现这个目标?

3 个答案:

答案 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);