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 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
如何写php程序?
Dec 08 PHP
一个捕获函数输出的函数
Feb 14 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
yii上传文件或图片实例
Apr 01 PHP
phpnow php探针环境检测代码
Nov 04 PHP
PHP扩展开发入门教程
Feb 26 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP APP微信提现接口代码
Sep 30 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 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 visitFile()遍历指定文件夹函数
2010/08/21 PHP
php实现监听事件
2013/11/06 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JavaScript中实现单体模式分享
2015/01/29 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python sorted排序方法如何实现
2020/03/31 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
2014年端午节活动方案
2014/03/11 职场文书
公司委托书格式
2014/08/01 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
队列队形口号
2015/12/25 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server