php专区

 首页 > php专区 > PHP高级 > 日期 > php 有趣的日期逻辑处理 - php日期

php 有趣的日期逻辑处理 - php日期

分享到:
【字体:
导读:
          今天处理了一个很小的问题,需求是这样的,从周一到周日只能看到上周一到上周日的数据,这里直接从数据库里根据 date 字段查询 范围即可,但需要PHP生成 开始日期和结束日期...

php 有趣的日期逻辑处理

今天处理了一个很小的问题,需求是这样的,从周一到周日只能看到上周一到上周日的数据,这里直接从数据库里根据 date 字段查询 范围即可,但需要PHP生成 开始日期和结束日期.

最开始,我直接这么处理。

  1. $start_date = date('Y-m-d' , strtotime("-2 week monday")); 
  2. $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,还活在上周.

于是换了种方法:

  1. $getWeekDay = date("w"); 
  2. $startDay = date("Y-m-d"mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y"))); 
  3. $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。

不得已,我再改了下方法:

  1. $getWeekDay = date("N") ; 
  2. $startDay = date("Y-m-d"mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y"))); 
  3. $endDay = date("Y-m-d"strtotime("+6 day $startDay")); 

这下就OK 了.

分享到:
PHP用mktime()得到某段时间 区间的时间戳...
PHP用mktime()得到某段时间 区间的时间戳 本文章来介绍一下关于PHP得到某段时间 区间的时间戳,主要是利用了time和mktime来操作,有需要的朋友可以看看. 实例代码如下: $y=date("Y",time());  $m=date("m",time());  $d=date("d",time());  $start_time = mktime(9, 0, 0, ...
获取前 n 天或者后 n 天的日期 - php日期
获取前 n 天或者后 n 天的日期 获取前 n 天或者后 n 天的日期 下面举了三个实现有计算n天以前的日期和获取指定日期前的N天,最后还有个js代码. $rs['expire_long']=5;  echo date("Y-m-d H:i:s",strtotime('-'.$rs['expire_long'].' days&#039...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……