php中一个有意思的日期逻辑处理


Posted in PHP onMarch 25, 2012

今天处理了一个很小的问题。
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据 date 字段查询 范围即可。
但需要PHP生成 开始日期和结束日期。

最开始,我直接这么处理。

$start_date = date('Y-m-d' , strtotime("-2 week monday")); 
$end_date = date('Y-m-d' , strtotime("$start_date +6 day"));

假如日期是 2011-07-19,$start_date= 2011-07-11 这样处理没有问题。
如果日期是 2011-07-18 ,$start_date 则会等于 2011-07-04,还活在上周。

于是换了种方法

$getWeekDay = date("w"); 
$startDay = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y"))); 
$endDay = date("Y-m-d", strtotime("+6 day $startDay"));

假如日期是 2011-07-19,$start_date= 2011-07-11 这样处理没有问题,和我们期望的一样。
如果日期是 2011-07-24,我们期望的 $start_date 是 2011-07-11,但实际返回的是 2011-07-18。

不得已,我再改了下方法

$getWeekDay = date("N") ; 
$startDay = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y"))); 
$endDay = date("Y-m-d", strtotime("+6 day $startDay"));

这下就OK 了。
PHP 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php缓存技术详细总结
Aug 07 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
php中http_build_query 的一个问题
Mar 25 #PHP
php正则表达匹配中文问题分析小结
Mar 25 #PHP
二招解决php乱码问题
Mar 25 #PHP
php引用地址改变变量值的问题
Mar 23 #PHP
奇怪的PHP引用效率问题分析
Mar 23 #PHP
php地址引用(php地址引用的效率问题)
Mar 23 #PHP
PHP遍历数组的几种方法
Mar 22 #PHP
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
什么是GWT的Entry Point
2013/08/16 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
暑期实习鉴定
2013/12/16 职场文书
家长对小学生的评语
2014/01/28 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
学校招生宣传广告词
2014/03/19 职场文书
学历公证书范本
2014/04/09 职场文书
工商管理自荐书
2014/07/06 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
详解Python flask的前后端交互
2022/03/31 Python