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


Posted in PHP onMarch 25, 2012

今天处理了一个很小的问题。
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据 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写入数据库类代码分享
Jul 26 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
php生成静态页面的简单示例
Apr 17 PHP
php中curl和file_get_content的区别
May 10 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php利用header函数下载各种文件
Aug 24 PHP
php中http_build_query 的一个问题
Mar 25 #PHP
php正则表达匹配中文问题分析小结
Mar 25 #PHP
二招解决php乱码问题
Mar 25 #PHP
php引用地址改变变量值的问题
Mar 23 #PHP
奇怪的PHP引用效率问题分析
Mar 23 #PHP
php地址引用(php地址引用的效率问题)
Mar 23 #PHP
PHP遍历数组的几种方法
Mar 22 #PHP
You might like
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
php 静态变量的初始化
2009/11/15 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php查看当前Session的ID实例
2015/03/16 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
js判断密码强度的方法
2020/03/18 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
python数组过滤实现方法
2015/07/27 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
50岁生日感言
2014/01/23 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
泰山导游词
2015/02/02 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
工作简历的自我评价
2019/05/16 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android