文档章节

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

ywppengpeng
 ywppengpeng
发布于 2016/11/22 10:49
字数 338
阅读 67
收藏 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
博文 62
码字总数 31743
作品 0
西安
程序员
shell、python时间函数小结

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

M4K0
05/23
0
0
quartz cron表达式

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

Sam_鸿发
2016/01/20
13
1
SharePoint 根据时间筛选

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

六指狂魔肉球猫
2014/11/17
0
0
从别人网站抓取一张图片保存本地和数据库 【求思路】

右上角有今天是周几的显示 右下角只有一个 上一幅图的触发图标 1: 今日图片 右上角给出当天是星期几 2:图中间是无压缩的原图 3:鼠标移动图上,触发title文字说明 4:右下角 上一张图AJAX传...

本周网
2014/09/15
441
5
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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
2
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
2
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
5
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
今天
2
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部