PHP怎样获得最近一个周一和上周一的日期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP怎样获得最近一个周一和上周一的日期?相关的知识,希望对你有一定的参考价值。

本周周一的日期:

$ts = time();
$this_monday = this_monday($ts);
echo date('Y-m-d H:i:s', $this_monday);
//这个星期的星期一  
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间  
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式  
function this_monday($timestamp=0,$is_return_timestamp=true)  
    static $cache ;  
    $id = $timestamp.$is_return_timestamp;  
    if(!isset($cache[$id]))  
        if(!$timestamp) $timestamp = time();  
        $monday_date = date('Y-m-d', $timestamp-86400*date('w',$timestamp)+(date('w',$timestamp)>0?86400:-/*6*86400*/518400));  
        if($is_return_timestamp)  
            $cache[$id] = strtotime($monday_date);  
        else  
            $cache[$id] = $monday_date;  
          
      
    return $cache[$id];  
   

上周一的函数则为

$ts = time();
$last_monday = last_monday($ts);
echo date('Y-m-d H:i:s', $last_monday);
//上周一  
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间  
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式  
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];  

参考技术A

获取本周一

    echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)); 

    echo date('Y-m-d', strtotime('-1 monday', time())); 


顺便说,上面的人写的什么 shit

php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期

http://blog.csdn.net/sasa12121212/article/details/54908305
<?php
//本周一
echo date(‘Y-m-d‘, (time() - ((date(‘w‘) == 0 ? 7 : date(‘w‘)) - 1) * 24 * 3600)); //w为星期几的数字形式,这里0为周日


//本周日

echo date(‘Y-m-d‘, (time() + (7 - (date(‘w‘) == 0 ? 7 : date(‘w‘))) * 24 * 3600)); //同样使用w,以现在与周日相关天数算


//上周一

echo date(‘Y-m-d‘, strtotime(‘-1 monday‘, time())); //无论今天几号,-1 monday为上一个有效周未


//上周日

echo date(‘Y-m-d‘, strtotime(‘-1 sunday‘, time())); //上一个有效周日,同样适用于其它星期


//本月一日

echo date(‘Y-m-d‘, strtotime(date(‘Y-m‘, time()) . ‘-01 00:00:00‘)); //直接以strtotime生成


//本月最后一日

echo date(‘Y-m-d‘, strtotime(date(‘Y-m‘, time()) . ‘-‘ . date(‘t‘, time()) . ‘ 00:00:00‘)); //t为当月天数,28至31天


//上月一日

echo date(‘Y-m-d‘, strtotime(‘-1 month‘, strtotime(date(‘Y-m‘, time()) . ‘-01 00:00:00‘))); //本月一日直接strtotime上减一个月


//上月最后一日

echo date(‘Y-m-d‘, strtotime(date(‘Y-m‘, time()) . ‘-01 00:00:00‘) - 86400); //本月一日减一天即是上月最后一日

以上是关于PHP怎样获得最近一个周一和上周一的日期?的主要内容,如果未能解决你的问题,请参考以下文章

c#winform中怎么获得上周一的日期

Oracle SQL 获取本月内的所有周一

Qt-QCalendarWidget只能选中周一及获取更新日期

获取星期一和星期日等。对于任何日期作为 Unix 中的参数一周

如何从PHP中的两个日期范围内提取每个星期一和每两周一次的星期一?

php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期