首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据今天的php日期下周

根据今天的php日期下周
EN

Stack Overflow用户
提问于 2013-02-04 15:59:57
回答 1查看 685关注 0票数 0

我想下周展示,如果它是在周四13:00之后,它应该返回+2周(下一周)。如果不是周末,这段代码可以很好地工作。它在星期五之后给出了错误的开始日期。是什么导致了这种情况?

代码语言:javascript
复制
$current_time = strtotime('now');

if ($current_time < strtotime('thursday this week 13:00')) {
    $week_start = date('d/m/Y', strtotime('this week next monday', strtotime(date('d-m-Y'))));
    $week_end = date('d/m/Y', strtotime('next week next sunday', strtotime(date('d-m-Y'))));
} else {
    if (date('N') > 5) {
        $week_start = date('d/m/Y', strtotime('+2 week next monday', strtotime(date('d-m-Y'))));
    } else {
        $week_start = date('d/m/Y', strtotime('next week next monday', strtotime(date('d-m-Y'))));
    }

    $week_end = date('d/m/Y', strtotime('+2 week next sunday', strtotime(date('d-m-Y')))); 
} 

return $week_start." - ".$week_end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-04 16:56:32

你的if语句有3个分支,即使你说你只是在测试周四13:00之前或之后的日期。

看起来+2 week next monday应该是next week next monday,而读取next week next monday的代码行可能从未执行过。

代码也可以像这样简化:

代码语言:javascript
复制
if ($current_time < strtotime('thursday this week 13:00')){
    $week_start = strtotime('monday next week');
}else{
    $week_start = strtotime('monday +1 week');
}

$week_end = strtotime('next sunday', $week_start);

return date("Y/m/d", $week_start)." - ".date("Y/m/d", $week_end); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14682534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档