php中一个有意思的日期逻辑处理
2023-06-13 09:14:33 时间
今天处理了一个很小的问题。
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据date字段查询范围即可。
但需要PHP生成开始日期和结束日期。
最开始,我直接这么处理。
复制代码代码如下:
需求是这样的,从周一到周日只能看到上周一到上周日的数据。
这里直接从数据库里根据date字段查询范围即可。
但需要PHP生成开始日期和结束日期。
最开始,我直接这么处理。
$start_date=date("Y-m-d",strtotime("-2weekmonday"));
$end_date=date("Y-m-d",strtotime("$start_date+6day"));
假如日期是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("+6day$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("+6day$startDay"));
这下就OK了。
相关文章
- php替换字符串中,PHP 替换字符串中的一些字符方法介绍
- PHP实时消息推送,你会不会用workerman
- 解决windows+nginx下 PHP-CGI 进程崩溃问题
- PHP程序员面试时经常会被考的冒泡排序算法
- 解决PHP时间戳中月份、日期前带不带0的问题
- PHP setAttribute() 和 getAttribute():设置与获取PDO属性
- PHP ADLogin详解编程语言
- 一步步教你使用PHP调用Linux命令(php调用linux命令)
- PHP比较两个字符串
- 怎么办解决PHP中断MySQL连接的办法(php没有mysql)
- 器使用Linux快速启动PHP服务器(linux启动php服务)
- 关于PHP爬虫接入爬虫代理的代码demo
- 使用PHP操作MySQL数据库的基础——mysql类库(mysql类库php)
- 使用Linux命令行来优化你的PHP开发(linux命令行php)
- 使用PHP连接MSSQL数据库的查询语句(php mssql 语句)
- PHP和MSSQL实现完美兼容:简单实用又稳定(php mssql兼容性)
- PHP 中使用 MySQLexec 函数进行数据库操作(mysql_exec)
- PHP常用代码
- 在PHP中实现Javascript的escape()函数代码
- php获取后台Job管理的实现代码
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- PHP中CURL方法curl_setopt()函数的参数分享
- PHP系统命令函数使用分析
- 改写函数实现PHP二维/三维数组转字符串
- php获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
- php查看请求头信息获取远程图片大小的方法分享