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 如何生成周报?_Php_Date - Fatal编程技术网

Php 如何生成周报?

Php 如何生成周报?,php,date,Php,Date,我能够使用一些日期函数生成每周报告。这张桌子看起来像 ------------------------------------------------------------------------- week |Sunday |Monday |Tuesday |Wednesday |Thursday |Friday |Saturday | |July 21 |July 22 |July 23 |July 24 |July 25 |July 26 |July 27 | -

我能够使用一些日期函数生成每周报告。这张桌子看起来像

-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 21 |July 22 |July 23 |July 24   |July 25  |July 26 |July 27  |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 28 |July 29 |July 30 |July 31   |July 32  |July 33 |July 34  |
-------------------------------------------------------------------------
但当当前一周包含两个月时,如7月底和8月初。我找不到当前的星期。这张桌子看起来像

-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 21 |July 22 |July 23 |July 24   |July 25  |July 26 |July 27  |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 28 |July 29 |July 30 |July 31   |July 32  |July 33 |July 34  |
-------------------------------------------------------------------------
请帮忙。结果应该是这样的

--------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday   |Saturday |
     |July 28 |July 29 |July 30 |July 31   |August 1 |August 2 |August 3 |
--------------------------------------------------------------------------

我想你是从一周的第一天开始的吧

然后使用phps
stringtotime
在几天内轻松进行:

<?php
   $startOfWeek = date("Y-m-d", strtotime("Monday this week"));

   for ($i=0; $i<7;$i++){
       echo date("l, d M", strtotime($startOfWeek . " + $i day"))."<br />";
   }
?>
格式按要求

更新您的问题:

//find week start
$weekstart = date("Y-m-d", strtotime("Monday this week"))   ;
echo $weekstart; 
strotime
非常灵活。

来自php.net的示例:

<?php
$currentdate  = mktime(0, 0, 0, date("m")  , date("d"), date("Y"));
    echo $day_eg1 = date ('N',$currentdate);
    echo $day_eg2 = date("N", $today+1 * 24 * 3600);
    echo $day_eg3= date("N", $today+2 * 24 * 3600);
    echo $day_eg4 = date("N", $today+3 * 24 * 3600);
    echo $day_eg5 = date("N", $today+4 * 24 * 3600);
    echo $day_eg6 = date("N", $today+5 * 24 * 3600);
    echo $day_eg7 = date("N", $today+6 * 24 * 3600);
?>

资料来源:


从今天算起7天,如果要创建此报告(例如上周),只需计算星期一时间。

您可以使用以下代码获取当前日期的星期日期

<?php
//current time stamp
$ts = time();
// calculate the number of days since Monday
$dow = date('w', $ts);
$offset = $dow - 1;
if ($offset < 0) {
    $offset = 6;
}
// calculate timestamp for the Monday
$ts = $ts - $offset*86400;
// loop from Monday till Sunday
for ($i = 0; $i < 7; $i++, $ts += 86400){
    echo date("m/d/Y l", $ts) . "<br/>";
}
?>

请参阅《第一次抓住星期一》:

$monday = new DateTime('monday this week');
// OR
$monday = new DateTime('may 28th 1983'); // no that's NOT my birthday ;)
$monday->modify('monday this week');
然后循环7次

for($i=0; $i<7; $i++) {
    echo $monday->format('Y-m-d') .'<br>';
    $monday->modify('+1 day');
}

关于您编写的代码问题的问题必须描述特定的问题,并包括重现该问题的有效代码。有关指南,请参阅“某些日期函数”?哪一个?你试过什么了?请附上你的代码…我的代码很有用,谢谢。但如果当前日期是“2013-08-2”,我怎么才能找到本周的开始呢。它不显示上个月的信息。@SushantAryal更新您的问题。