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&&mysql)五
Oct 09 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
php堆排序(heapsort)练习
Nov 13 PHP
php中session退出登陆问题
Feb 27 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP自动生成表单代码分享
Jun 19 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
Smarty环境配置与使用入门教程
May 11 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
php基于协程实现异步的方法分析
Jul 17 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 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脚本加密专家php解密算法
2020/09/13 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
express.js中间件说明详解
2019/03/19 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
python对html代码进行escape编码的方法
2015/05/04 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
python生成器与迭代器详解
2019/01/01 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
python实现四人制扑克牌游戏
2020/04/22 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
行政主管岗位职责
2013/11/18 职场文书
音乐教学案例
2014/01/30 职场文书
个性婚礼策划方案
2014/05/17 职场文书
考试作弊检讨书
2014/10/21 职场文书
违纪检讨书
2015/01/27 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
美容院管理规章制度
2015/08/05 职场文书
大学生村官工作心得体会
2016/01/23 职场文书