文档章节

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

ywppengpeng
 ywppengpeng
发布于 2016/11/22 10:49
字数 338
阅读 66
收藏 1
点赞 0
评论 0

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

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

$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

quartz cron表达式

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

Sam_鸿发 ⋅ 2016/01/20 ⋅ 1

SharePoint 根据时间筛选

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

六指狂魔肉球猫 ⋅ 2014/11/17 ⋅ 0

从别人网站抓取一张图片保存本地和数据库 【求思路】

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

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

quartz cron表达式详解

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

依风听雨 ⋅ 2013/11/21 ⋅ 0

Quartz时间格式配置说明

字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 星期 1-7 或者 SUN-SAT , - * ? / L C # 年(可......

Leons ⋅ 2015/08/04 ⋅ 0

Oracle日期周详解以及周开始结束时间计算

1 ORACLE中周相关知识描述 1.1 日期格式化函数 TO_CHAR(X [,FORMAT]):将X按FORMAT格式转换成字符串。X是一个日期,FORMAT是一个规定了X采用何种格式转换的格式字符串,FORMAT与周相关的有W...

壹峰 ⋅ 04/28 ⋅ 0

定时器时间配置

定时器时间配置 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 ...

风中帆 ⋅ 2015/02/14 ⋅ 0

错了不能白错,要成倍赚回来

“当你为错过太阳而哭泣的时候,你还会错过月亮和星星。” 每当我们做错一个决定、做错一件事或者没有达成自己想要的结果时,总会懊悔不已,但是过去的事情我们是无法改变的,如果总沉浸在过...

葛亮 ⋅ 2017/11/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 12分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 18分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 23分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 24分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 28分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 32分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 44分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部