如何从给定 PHP 的年份中找到特定的一天?
How to find specific day from years given PHP?
我正在研究如何从给定的时间获取特定日期:
假设我有 2 个日期:2016 年 1 月 1 日至 2017 年 1 月 1 日,我需要知道那里有多少个星期一、星期二或我 select 根据我提供的输入输入的任何日期。
有什么最好的方法可以做到这一点吗?
尝试修改这个例子:
<?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
更新的答案
<?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;
获取所有日期并循环遍历所有日期,获取开始日期后的第一个星期一,然后一次迭代 7 天:
$endDate = strtotime($endDate);
for($i = strtotime('Monday', strtotime($startDate)); $i <= $endDate; $i =strtotime('+1 week', $i))
echo date('l Y-m-d', $i);
我正在研究如何从给定的时间获取特定日期:
假设我有 2 个日期:2016 年 1 月 1 日至 2017 年 1 月 1 日,我需要知道那里有多少个星期一、星期二或我 select 根据我提供的输入输入的任何日期。
有什么最好的方法可以做到这一点吗?
尝试修改这个例子:
<?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
更新的答案
<?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;
获取所有日期并循环遍历所有日期,获取开始日期后的第一个星期一,然后一次迭代 7 天:
$endDate = strtotime($endDate);
for($i = strtotime('Monday', strtotime($startDate)); $i <= $endDate; $i =strtotime('+1 week', $i))
echo date('l Y-m-d', $i);