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 相关文章推荐
与数据库连接
Oct 09 PHP
php 动态多文件上传
Jan 18 PHP
PHP 图片水印类代码
Aug 27 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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描述) 简单选择排序 simple selection sort
2011/08/09 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
php文件上传类完整实例
2016/05/14 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
基于python调用psutil模块过程解析
2019/12/20 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
2014年自我评价
2014/01/04 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
人口与计划生育责任书
2015/05/09 职场文书
军事博物馆观后感
2015/06/05 职场文书
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记