服务器之家

服务器之家 > 正文

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

时间:2019-12-28 16:26     来源/作者:PHP教程网

今天处理了一个很小的问题。 
需求是这样的,从周一到周日只能看到上周一到上周日的数据。 
这里直接从数据库里根据 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 了。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部