php中一个有意思的日期逻辑处理
作者:bea
今天处理了一个很小的问题。 需求是这样的,从周一到周日只能看到上周一到上周日的数据。 这里直接从数据库里根据 date 字段查询 范围即可。 但需要PHP生成 开始日期和结束日期。 最开始,我直接这么处理。 代码如下: $start_date = date('Y-m-d' , strtotime("-2 week monday")); $end_date = date('Y-m-d' , strtotime("$start_date +6 day")); 假如日期
今天处理了一个很小的问题。
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据 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 了。
有用 | 无用
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据 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 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
- PHP乱码问题,UTF-8乱码常见问题小结
- PHP中return 和 exit 、break和contiue 区别与用法
- php 的加密函数 md5,crypt,base64_encode 等使用介绍
- PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
- PHP文件注释标记及规范小结
- 用PHP读取超大文件的实例代码
- PHP新手用的Insert和Update语句构造类
- PHP中SESSION使用中的一点经验总结
- PHP __autoload()方法真的影响性能吗?
- phpmyadmin3 安装配置图解教程
- php 注释规范
- php 计划任务 检测用户连接状态
- MySQL的FIND_IN_SET函数使用方法分享
- php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
- phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
- phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
- simplehtmldom Doc api帮助文档