繁体   English   中英

PHP日期问题与今年和明年冲突

[英]Php date issue clashing with this year & next year

每年的一周,我都会得到这个结果

week of45 date:2017-11-06
week of46 date:2017-11-13
week of47 date:2017-11-20
week of48 date:2017-11-27
week of49 date:2017-12-04
week of50 date:2017-12-11
week of51 date:2017-12-18
week of52 date:2017-12-25
week of1 date:1969-12-31
week of2 date:1969-12-31
week of3 date:1969-12-31
week of4 date:1969-12-31
week of5 date:1969-12-31

如您所见,当它再次从1开始时,日期混乱了,下面是代码:

for($i=0;$i< 13;$i++) {
    $weekNumnew = $weekNum + $i;
    $week_date = date('Y-m-d', strtotime("$thisYear-W$weekNumnew-1")); 
    if($weekNumnew > '52'){
        $weekNumnew = $weekNumnew - 52;
        $week_date = date('Y-m-d', strtotime("$nextyear-W$weekNumnew-1"));
    }
    echo "week of" . $weekNumnew . " date:" .$week_date . "<br>";
}

$weekNumnew从45开始,根据每年的星期几,每周增加一次。 还有$thisYear ='2017'和$nextyear ='2018'我有办法解决吗? 我以为明年添加时可以解决,但是没有用,有人可以帮忙吗?

您可以结合使用DateInterval和DatePeriod为您生成以下数据:

<?php

$start = new DateTime('now');
$end = new DateTime('+3 years');

$interval = DateInterval::createFromDateString('1 week');
$period = new DatePeriod($start, $interval, $end);

foreach ($period as $week) {
  $monday = $week->modify('monday this week');
  printf("Week %d. Date: %s \n", $monday->format('W'), $monday->format('Y-m-d'));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM