Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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获得特定年份52周的开始/结束日期_Php_Date - Fatal编程技术网

PHP获得特定年份52周的开始/结束日期

PHP获得特定年份52周的开始/结束日期,php,date,Php,Date,我想计算2016年2016年2016年2016年2016年2016年2016年 我正在努力获得输出 开始日期(“j/n/Y”)结束日期(“j/n/Y”) 我看过类似的SO问题和谷歌搜索,但它是针对特定的一周,或者不是我想要完成的 我想得到的是以下内容 Start: 12/14/2015 End 12/21/2015 Start: 12/22/2015 End 12/28/2015 .... Start: 01/05/2016 End 01/11

我想计算2016年
2016年
2016年
2016年
2016年
2016年
2016年

我正在努力获得输出

开始日期(“j/n/Y”)结束日期(“j/n/Y”)

我看过类似的SO问题和谷歌搜索,但它是针对特定的一周,或者不是我想要完成的

我想得到的是以下内容

    Start: 12/14/2015  
End 12/21/2015 
    Start: 12/22/2015  
End 12/28/2015

    ....

    Start: 01/05/2016  
 End 01/11/2016
    Start: 01/12/2016  
 End 01/18/2016

... 
等等,索沃斯


任何帮助都将不胜感激,希望人们不要对这个问题投反对票。它是有效的,我已经查找过,似乎找不到我要找的内容。

您可以尝试以下代码:

$start_date=日期(“m-d-Y”,标准时间(“本周星期二”)

$end_date=日期(“m-d-Y”,标准时间(“下周星期一”)


它将为您提供
一周
,从
星期二开始
星期一结束
当日期小于您定义的结束日期时,每周循环一次

$date = Some start date ...;
$endDate = Some end date ...;

while (date_interval_format($date->diff($endDate),'%R') == '+') {
    echo $date->format('j/n/Y') . " - " . $date->add(new DateInterval('P6D'))->format('j/n/Y') . "\n";
    $date->add(new DateInterval('P1D'));
}
$oneWeek=7*24*60*60;//1周(秒)
$curr_ts=时间();
而($curr\u ts
您可以使用
strotime
功能设置2016年1月的第一个星期二,然后使用下周一和明天循环52次。所以你不必做任何计算

 <?php
 $ts=strtotime("tuesday january 2016");
 echo "<table>";
 for ($i=0;$i<52;$i++) {
    echo "<tr><td>Start: ".date("Y/m/d", $ts);
    $ts=strtotime("next monday", $ts);
    echo "</td><td>End: ".date("Y/m/d", $ts)."</td>\n";
    echo "</td><td>Payweek: ".date("W", $ts)."</td></tr>\n";
    $ts=strtotime("tomorrow", $ts);
 }
 echo "</table>";

这会让我朝着正确的方向开始,现在的问题是如何在指定年份的52周内循环使用。在回音结束日期之后再加上哪个发薪周如何?如1,2,3,4…52,以引用哪一个支付周#@Adami在最后一列中使用
date(“W”,$ts)
 <?php
 $ts=strtotime("tuesday january 2016");
 echo "<table>";
 for ($i=0;$i<52;$i++) {
    echo "<tr><td>Start: ".date("Y/m/d", $ts);
    $ts=strtotime("next monday", $ts);
    echo "</td><td>End: ".date("Y/m/d", $ts)."</td>\n";
    echo "</td><td>Payweek: ".date("W", $ts)."</td></tr>\n";
    $ts=strtotime("tomorrow", $ts);
 }
 echo "</table>";