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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
Oracle Faq(Oracle的版本)
Oct 09 PHP
用PHP开发GUI
Oct 09 PHP
模拟OICQ的实现思路和核心程序(三)
Oct 09 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
PHP Session机制简介及用法
Aug 19 PHP
PHP里的单例类写法实例
Jun 25 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
浅析php-fpm静态和动态执行方式的比较
Nov 09 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 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
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
AngularJS语法详解
2015/01/23 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
详解python分布式进程
2018/10/08 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
Java的类与C++的类有什么不同
2014/01/18 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
放假通知格式
2015/04/14 职场文书
中国合伙人观后感
2015/06/02 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
利用Python实现模拟登录知乎
2022/05/25 Python
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers