文档章节

PHP CodeBase: 求最近一个周一和上周一的日期

ywppengpeng
 ywppengpeng
发布于 2016/11/22 10:49
字数 338
阅读 68
收藏 1

有时候,会有这么一些需求:在每周的周一会更新一些内容,那么我要获取本周周一的数据,或者上周周一的数据,那么就需要知道本周或上周周一的日期了。对于程序来说,需求就变成了:这周的周一是几号?或者说,上周一是几号?

先来求一下本周周一的日期

$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];  
} 

 

© 著作权归作者所有

共有 人打赏支持
ywppengpeng
粉丝 5
博文 63
码字总数 32377
作品 0
西安
程序员
私信 提问
shell、python时间函数小结

有时需要写一些定时任务脚本,简单总结一下,备忘。 1. 获取当前时间 python 在windows下精确到0.001秒,linux下时间精度为0.000001秒 shell 2. 时间格式化 python shell 3. 时间加减法 pyth...

M4K0
05/23
0
0
SharePoint 根据时间筛选

最近在整SP列表 老大要求用列表规范周报格式。 提出要在一个视图内查看上周一至周日的内容 翻了下资料想到了以下几种方法 1.在视图页面添加时间筛选器webpart,用参数传入列表筛选 2.在列表添...

六指狂魔肉球猫
2014/11/17
0
0
quartz cron表达式

Cron表达式是由6所需的字段和一个可选字段由空格分隔 Cron表达式的格式:秒 分 时 日 月 周 年(可选) Field Name Allowed Values Allowed Special Characters Seconds 0-59 , - * / Minutes...

Sam_鸿发
2016/01/20
13
1
有了解中关村 新东方那得吗 怎么样

三周前去面试的前端 这周才让复试 现在已经入职到一家外包了 上周一入职的 还要再去新东方那面试吗 求给点意见 (个人对外包可能有些偏见吧)

开源中国技术顾问
2016/08/23
744
8
JAVA quartz cron 表达式详解 日期表达式

quartz cron 表达式详解 字段 允许值 允许的特殊字符 秒 0-59 , / 分 0-59 , - / 小时 0-23 , - / 日期 1-31 , - ? / L WC 月份 1-12 或者 JAN-DEC , - * / 星期 1-7 或者SUN-SAT , - ? / L...

李超
2015/03/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习心得《稻盛和夫经营学》的读后感2300字

学习心得《稻盛和夫经营学》的读后感2300字: 作者:张宪军;稻盛和夫信奉明朝王阳明的一句话:良知没处,万法难度。人们把它理解为管理者要有在纯正心态下要有好的做事方法,不然是很难成功...

原创小博客
19分钟前
0
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
41分钟前
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0
Win10 下安装Win7双系统

很多人买了预装64位Win8/8.1的电脑后想重装(或者再安装一个)Win7系统,但是折腾半天发现以前的方法根本不奏效。这是因为预装Win8/8.1的电脑统一采用了UEFI+GPT引导模式,传统的BIOS(Legacy...

yaly
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部