php如何获取数据库里上一周的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何获取数据库里上一周的数据?相关的知识,希望对你有一定的参考价值。

就是不管今天 是这周的星期几, 都会获取上一周星期一到星期七的信息。

    你的数据库里需要有一个记录时间的字段,例如这个字段是posttime,每次插入数据的时候,都记录下当前的时间戳,也就是time();

    你需要得到上周开始,和上周结束的时间戳

    $beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
    $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));

   3.查询的时候,WHERE 条件里加上  posttime>=$beginLastweek AND posttime<=$endLastweek 
希望对你有帮助

追问

没有时间戳有 date的Y-m-d 能转换吗?

追答

这种普通的时间是没法用来比较的,我建议你可以把整个表循环一下,用mktime()函数,把这些标准时间都转成时间戳,以后存的时候也存时间戳就可以了

追问

这个不能改 这个东西以后要输出的

追答

输出的时候,直接用date()就能转成正常的时间了,数据库处理时间的时候,都需要用时间戳的,这种标准时间,没办法用来比较

参考技术A 根据时间获取追问

根据函数?strtotime??这样不是只能获取时间戳上的时间 周三到上周三 周四到上周四?

追答

你要直接使用命令获取肯定没办法,你可以写个程序,然后使用两个参数,规定时间范围,然后去查询数据库

追问

我数据库里的存的是普通的Y-m-d

追答

建议数据库里面直接存时间戳,这样很方面参与运算

php 获取当前周的开始结束日期

    public static function getCurrentWeek()
    {
        //当前日期
        $sdefaultDate = date("Y-m-d");
        //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
        $first = 1;
        //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
        $w = date('w', strtotime($sdefaultDate));
        //获取本周开始日期,如果$w是0,则表示周日,减去 6 天
        $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
        //本周结束日期
        $week_end = date('Y-m-d', strtotime("$week_start +6 days"));
        return [
            'start' => strtotime($week_start),
            'end' => strtotime($week_end)
        ];
    }

以上是关于php如何获取数据库里上一周的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 5.1 中获取前一周的数据?

如何以当天为搜索点获取同月前几周的数据

如何在红移中获取过去 X 周的数据?

获取当前周上一周下一周的日期

DJANGO开发的留言板, 如何获取上一页的url?

请教php大神,如何提取一个json数据里的某值?