文档章节

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
博文 63
码字总数 32377
作品 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
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
quartz cron表达式详解

1.一个quartz表达式至少有6个(或是7个),有空格分隔的时间元素 2.表达式从左到右顺序依次表示:秒 分钟 小时 日 月 星期 年 3.表达式的值: 字段 允许值 允许的特殊字符 秒 0-59 , - / 分 ...

依风听雨
2013/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部