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 相关文章推荐
改进的IP计数器
Oct 09 PHP
一些PHP写的小东西
Dec 06 PHP
PHP中的日期处理方法集锦
Jan 02 PHP
解析ajax事件的调用顺序
Jun 17 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
php实现mysql事务处理的方法
Dec 25 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
PHP7 foreach() 函数修改
Mar 09 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编码规范
2015/09/28 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
Python入门篇之面向对象
2014/10/20 Python
Python调用C语言开发的共享库方法实例
2015/03/18 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
如何在Django项目中引入静态文件
2019/07/26 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
基于Python的OCR实现示例
2020/04/03 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
班干部竞选演讲稿
2014/04/24 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
2014年商场工作总结
2014/11/22 职场文书
黄山导游词
2015/01/31 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
美元符号 $
2022/02/17 杂记