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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
PHP CKEditor 上传图片实现代码
Nov 06 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
yii实现创建验证码实例解析
Jul 31 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP通过串口实现发送短信
Jul 08 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
php往mysql中批量插入数据实例教程
Dec 12 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 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
php stream_get_meta_data返回值
2013/09/29 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
PHP实现添加购物车功能
2017/03/06 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
php跨域调用json的例子
2013/11/13 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
element-ui多文件上传的实现示例
2019/04/10 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
Sanic框架流式传输操作示例
2018/07/18 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
盛大笔试题
2016/11/05 面试题
园林施工员岗位职责
2013/12/11 职场文书
公司担保书格式范文
2014/05/12 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
装修公司管理制度
2015/08/05 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python