手机
当前位置:查字典教程网 >编程开发 >php教程 >php中一个有意思的日期逻辑处理
php中一个有意思的日期逻辑处理
摘要:今天处理了一个很小的问题。需求是这样的,从周一到周日只能看到上周一到上周日的数据。这里直接从数据库里根据date字段查询范围即可。但需要PH...

今天处理了一个很小的问题。

需求是这样的,从周一到周日只能看到上周一到上周日的数据。

这里直接从数据库里根据 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 date函数常用时间处理方法

php获取twitter最新消息的方法

php中文本数据翻页(留言本翻页)

一个简单的自动发送邮件系统(一)

php循环table实现一行两列显示的方法

一个很方便的 XML 类!!原创的噢

php中文件上传的安全问题

一个php作的文本留言本的例子(五)

使用PHP的错误处理

php中关于socket的系列函数总结

精品推荐
分类导航