Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从几个星期中获取具体日期?_Php_Datetime - Fatal编程技术网

Php 如何从几个星期中获取具体日期?

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 =

使用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 = 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你的问题是什么。我想找到一个解决方案。写一个伪问题。陷入问题。