美文网首页
PHP 快速获取周一0点的时间戳

PHP 快速获取周一0点的时间戳

作者: HongXunPan | 来源:发表于2020-08-21 16:56 被阅读0次

    背景

    项目中有遇到一些业务是以周为单位的,比如周一0点进行某些结算排名之类的。这时候就需要获取周一0点的时间戳进行数据的分割拆分统计等操作,然而获取本周一0点的时间戳 PHP 并没有提供原生函数 。

    传统方法

    判断今天是星期几,然后根据周一应该跟今天相差的时间算出周一0点的时间。

    //获取本周一
    public static function onMonday($type)
    {
        $weekday = date('w');
        if ($weekday == 0) {
            $weekday = 7;
        }
        $weekday = $weekday - 1;
        if ($type == 1) {
            return date("Ymd", strtotime("- {$weekday} days"));
        } else {
            return strtotime(date("Ymd", strtotime("- {$weekday} days")));
        }
    }
    

    捷径

    偶然一次发现,strtotime('next Monday') 总是会返回下一周的周一的时间,无论当前时间是星期几。这与 strtotime('this Monday') 抑或 strtotime('last Monday') 都不一样。

    $thisMonday = strtotime('next Monday') - 60*60*24*7;
    

    相关文章

      网友评论

          本文标题:PHP 快速获取周一0点的时间戳

          本文链接:https://www.haomeiwen.com/subject/zvxpjktx.html