PHP 快速獲取周一0點(diǎn)的時(shí)間戳

背景

項(xiàng)目中有遇到一些業(yè)務(wù)是以周為單位的,比如周一0點(diǎn)進(jìn)行某些結(jié)算排名之類的。這時(shí)候就需要獲取周一0點(diǎn)的時(shí)間戳進(jìn)行數(shù)據(jù)的分割拆分統(tǒng)計(jì)等操作,然而獲取本周一0點(diǎn)的時(shí)間戳 PHP 并沒有提供原生函數(shù) 。

傳統(tǒng)方法

判斷今天是星期幾,然后根據(jù)周一應(yīng)該跟今天相差的時(shí)間算出周一0點(diǎn)的時(shí)間。

//獲取本周一
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")));
    }
}

捷徑

偶然一次發(fā)現(xiàn),strtotime('next Monday') 總是會(huì)返回下一周的周一的時(shí)間,無論當(dāng)前時(shí)間是星期幾。這與 strtotime('this Monday') 抑或 strtotime('last Monday') 都不一樣。

$thisMonday = strtotime('next Monday') - 60*60*24*7;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容