PHP 快速获取周一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;


作者:HongXunPan
链接:https://www.jianshu.com/p/18caccb6e83a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值