源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-12-31 02:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php中一个有意思的日期逻辑处理
今天处理了一个很小的问题。 需求是这样的,从周一到周日只能看到上周一到上周日的数据。 这里直接从数据库里根据 date 字段查询 范围即可。 但需要PHP生成 开始日期和结束日期。 最开始,我直接这么处理。
[u]复制代码[/u] 代码如下:
$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,还活在上周。 于是换了种方法
[u]复制代码[/u] 代码如下:
$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。 不得已,我再改了下方法
[u]复制代码[/u] 代码如下:
$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 了。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部