加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php中一个有意思的日期逻辑处理

发布时间:2020-05-24 18:05:54 所属栏目:PHP 来源:互联网
导读:今天处理了一个很小的问题。需求是这样的,从周一到周日只能看到上周一到上周日的数据。这里直接从数据库里根据 date 字段查询 范围即可

今天处理了一个很小的问题。
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据 date 字段查询 范围即可。
但需要PHP生成 开始日期和结束日期。 最开始,我直接这么处理。
<div class="codetitle"><a style="CURSOR: pointer" data="75747" class="copybut" id="copybut75747" onclick="doCopy('code75747')"> 代码如下:<div class="codebody" id="code75747">
$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,还活在上周。 于是换了种方法
<div class="codetitle"><a style="CURSOR: pointer" data="67461" class="copybut" id="copybut67461" onclick="doCopy('code67461')"> 代码如下:<div class="codebody" id="code67461">
$getWeekDay = date("w");
$startDay = date("Y-m-d",mktime(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。 不得已,我再改了下方法
<div class="codetitle"><a style="CURSOR: pointer" data="45435" class="copybut" id="copybut45435" onclick="doCopy('code45435')"> 代码如下:<div class="codebody" id="code45435">
$getWeekDay = date("N") ;
$startDay = date("Y-m-d",strtotime("+6 day $startDay"));

这下就OK 了。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读