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下目前为目最全的CURL中文说明
Aug 01 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
PHP实现的oracle分页函数实例
Jan 25 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
php模拟实现斗地主发牌
Apr 22 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使之能同时支持GIF和JPEG
2006/10/09 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
js 异步处理进度条
2010/04/01 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python str与repr的区别
2013/03/23 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
python实现图像全景拼接
2020/03/27 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
Android面试宝典
2013/08/06 面试题
预备党员思想汇报范文
2013/12/29 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
解除劳动合同协议书
2014/09/17 职场文书
违章停车检讨书
2014/10/21 职场文书
2015年招聘工作总结
2014/12/12 职场文书
党支部审查意见
2015/06/02 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL