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 相关文章推荐
使用PHP制作新闻系统的思路
Oct 09 PHP
php+mysql分页代码详解
Mar 27 PHP
php创建多级目录代码
Jun 05 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
php密码生成类实例
Sep 24 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 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
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
Python反射用法实例简析
2017/12/22 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
Python 创建TCP服务器的方法
2020/07/28 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
新年抽奖获奖感言
2014/03/02 职场文书
供货协议书
2014/04/22 职场文书
大型公益活动策划方案
2014/08/20 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
2014年化验室工作总结
2014/11/21 职场文书
爱心助学感谢信
2015/01/21 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
入党介绍人意见2015
2015/06/01 职场文书
董事长新年致辞
2015/07/29 职场文书