Php 如何从几个星期中获取具体日期?
使用PHP,我希望在给定的周数内获得特定工作日的日期。例如,我想从10周开始计算星期一、星期三和星期五的日期 我想要的伪代码如下所示:Php 如何从几个星期中获取具体日期?,php,datetime,Php,Datetime,使用PHP,我希望在给定的周数内获得特定工作日的日期。例如,我想从10周开始计算星期一、星期三和星期五的日期 我想要的伪代码如下所示: function (monday, wednesday, friday, 10) { // 10 is week numbers week1 5,7,9 oct 2015 week2 12,14,16 oct 2015 ... week10 } 我为此写了一个解决方案。谢谢你的回答 <? $dates =
function (monday, wednesday, friday, 10) {
// 10 is week numbers
week1 5,7,9 oct 2015
week2 12,14,16 oct 2015
...
week10
}
我为此写了一个解决方案。谢谢你的回答
<?
$dates = array();
$i = 0;
while(true) {
$i++;
$time = strtotime("+$i days");
$dayOfWeek = date('w', $time);
if(
/*
0-sun
1-mon***
2-tue
3-wed***
4-thu
5-fri***
6-sat
*/
($dayOfWeek == 0) or
($dayOfWeek == 2) or
($dayOfWeek == 4) or
($dayOfWeek == 6)
) {
continue;
}
$dates[] = date('Y-m-d', $time);
if( count($dates) > 30 ) {
break;
}
echo json_encode($dates );
}
?>
听起来你想处理日程安排。我建议您看看名为“PHP5.3+的日期/日历递归库”的库 您要做的是未来10周的MWF计划:
$now = new DateTime('NOW');
$after10Weeks = clone $now;
$after10Weeks->modify('+10 week');
$r = new When();
$r->startDate($now)
->freq("weekly")
->until($after10Weeks)
->byday(array('MO', 'WE', 'FR'))
->generateOccurrences();
$occurrences = $r->occurrences;
听起来你想和时间表一起工作。我建议您看看名为“PHP5.3+的日期/日历递归库”的库 您要做的是未来10周的MWF计划:
$now = new DateTime('NOW');
$after10Weeks = clone $now;
$after10Weeks->modify('+10 week');
$r = new When();
$r->startDate($now)
->freq("weekly")
->until($after10Weeks)
->byday(array('MO', 'WE', 'FR'))
->generateOccurrences();
$occurrences = $r->occurrences;
使用PHP日期时间ISO日期:
$date = new DateTime(); //The object
$year=2015; // Desired year
$days = array('Mon', 'Wed', 'Fri'); // Desired days of week
for ($yearDay=1; $yearDay<=366; $yearDay++) {
$date->setISODate($year,null, $yearDay); // call ISO Date
$week=$date->format('W'); // Get the week resulted
$day=$date->format('D'); // Get the day name resulted
if($week==10 && in_array($day, $days)) // return only dates of desired days of week 10
echo $date->format('M d Y')."<br>";
}
$date=new DateTime()//对象
$year=2015年;//期望年
$days=数组('Mon','Wed','Fri');//一周中所需的天数
对于($yearDay=1;$yearDaysetISODate($year,null,$yearDay);//调用ISO日期
$week=$date->format('W');//获取结果周
$day=$date->format('D');//获取结果日期名称
if($week==10&&in_数组($day,$days))//只返回第10周所需天数的日期
echo$date->format('mdy')。“
”;
}
有关ISO日期的更多信息
您可以使用PHP DateTimeISO date尝试此代码:
$date = new DateTime(); //The object
$year=2015; // Desired year
$days = array('Mon', 'Wed', 'Fri'); // Desired days of week
for ($yearDay=1; $yearDay<=366; $yearDay++) {
$date->setISODate($year,null, $yearDay); // call ISO Date
$week=$date->format('W'); // Get the week resulted
$day=$date->format('D'); // Get the day name resulted
if($week==10 && in_array($day, $days)) // return only dates of desired days of week 10
echo $date->format('M d Y')."<br>";
}
$date=new DateTime();//对象
$year=2015;//所需年份
$days=数组('Mon'、'Wed'、'Fri');//所需的周天数
对于($yearDay=1;$yearDaysetISODate($year,null,$yearDay);//调用ISO日期
$week=$date->format('W');//获取结果周
$day=$date->format('D');//获取结果日期名称
if($week==10&&in_数组($day,$days))//只返回第10周所需天数的日期
echo$date->format('mdy')。“
”;
}
有关ISO日期的更多信息
你可以用来尝试这段代码,这样你就没有真正尝试过任何东西,并且希望能为你完成工作?你想要10周的时间来确定日期吗?另外,请编辑你的问题,添加你编写的代码,以达到你想要的目的。@Qirel你的问题是什么。我想找到一个解决方案。写一个伪代码。陷入问题。所以你我真的什么都没试过,希望能为你完成工作?你想在什么日期之前10周吗?另外,请编辑你的问题,添加你为实现目标而编写的代码。@Qirel你的问题是什么。我想找到一个解决方案。写一个伪问题。陷入问题。