php strtotime 如何获取上周一的时间呢?-1 monday不对
伊谢尔伦
伊谢尔伦 2017-04-11 10:44:02
[PHP讨论组]

-1 monday输出是这周一的时间,很奇怪

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(9)
PHP中文网

因为老外认为“this monday”是下周一,“last monday”是本周一
直接"-2 monday"就好了,或者"monday last week"

伊谢尔伦

date('Y-m-d', strtotime('-' . (6+date('w')) . ' days'));

怪我咯

-7 days

last week

PHP中文网

通常分两步走,先取得上周的任意一天,再去找周一,就像求月末是找到下个月的1号,然后-1 day一样。

ringa_lee

这个还是写一个通用的方法吧

function last_monday($timestamp=0,$is_return_timestamp=true){ 
    static $cache ; 
    $id = $timestamp.$is_return_timestamp; 
    if(!isset($cache[$id])){ 
        if(!$timestamp) $timestamp = time(); 
        $thismonday = this_monday($timestamp) - /*7*86400*/604800; 
        if($is_return_timestamp){ 
            $cache[$id] = $thismonday; 
        }else{ 
            $cache[$id] = date('Y-m-d',$thismonday); 
        } 
    } 
    return $cache[$id]; 
}
迷茫

date('w')得到当前周几,由于周一至周六分别是1-6,周日是0。当值为0的时候,上周一是13天前。其余就是date('w')+6天前。

$days = date('w')==0?13:date('w')+6;

echo date('Y-m-d',time()-$days*86400);
阿神

这里看到了文档链接描述

大家讲道理

echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."
";

PHPz

$time = strtotime("-7 day");

$timetest =date("Y-m-d h:i:sa", $time);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号