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 了。
相关推荐
-
php中一个有意思的日期逻辑处理
今天处理了一个很小的问题. 需求是这样的,从周一到周日只能看到上周一到上周日的数据. 这里直接从数据库里根据 date 字段查询 范围即可. 但需要PHP生成 开始日期和结束日期. 最开始,我直接这么处理. 复制代码 代码如下: $start_date = date('Y-m-d' , strtotime("-2 week monday")); $end_date = date('Y-m-d' , strtotime("$start_date +6 day"));
-
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
在网上找个很多的树实现,总感觉不尽如意,不是需要引用JS外部文件使用插件,就是代码过多让人看的眼花,实际上我只是想实现一个代码简洁.逻辑不复杂的树,费话不多说直接上代码: 1,首先写CSS样式,这个必需要写的头部最先渲染 复制代码 代码如下: <style> .ps{margin-left:10px;display:none;} .f { background: url("add.gif") no-repeat scroll -4px -21px; cursor: poin
-
Java中使用LocalDate根据日期来计算年龄的实现方法
Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat 首先吐槽一下,Date和Calendar实际用起来还是有一些别扭的,刚开始用的时候不熟悉,老是分不清Date和Calendar类的具体用法和区别. 而且Calendar类的set方法来设置日期时又有一些反人类,设置月份的时候总是要脑补一下减去1,比如要设置为2018年1月6日就要设置成2018,0
-
C#中一个高性能异步socket封装库的实现思路分享
前言 socket是软件之间通讯最常用的一种方式.c#实现socket通讯有很多中方法,其中效率最高就是异步通讯. 异步通讯实际是利用windows完成端口(IOCP)来处理的,关于完成端口实现原理,大家可以参考网上文章. 我这里想强调的是采用完成端口机制的异步通讯是windows下效率最高的通讯方式,没有之一! 异步通讯比同步通讯处理要难很多,代码编写中会遇到许多"坑".如果没有经验,很难完成. 我搜集了大量资料,完成了对异步socket的封装.此库已用稳定高效的运行几个月. 纵观网
-
Shell中关于时间和日期的函数总结
shell下获取系统时间的方法直接调用系统变量 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d) 获取昨天时期:`date -d yesterday +%Y%m%d` 获取前天日期:`date -d -2day +%Y%m%d` 依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d` 或n天前的 `date -d "n days ago" +%y%m%d` 明天:`date -d tomorrow +%y
-
在Pycharm中自动添加时间日期作者等信息的方法
1.按照下面路径以此打开 File→→Settings→→Editor→→File and code Templates 右侧找到Python Script,如下图 2.设置相关代码 如下 ##!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : ${DATE} ${TIME} # @Author : 未来战士biubiu!! # @FileName: ${NAME}.py # @Software: ${PRODUCT_NAME} # @Blog
-
ASP中格式化时间短日期补0变两位长日期的方法
因为短日期不足2位,所以在网页排版的时候,影响美观,下面两个函数可以解决这个问题. 2020-2-7短日期 变 2020-02-07长日期 Function FStime(times) Dim years,months,days if len(times)=0 then exit function years=year(times) months=right("0"&month(times),2) days=right("0"&day(times),
-
详解Vue3 Composition API中的提取和重用逻辑
Vue3 Composition API可以在大型项目中更好地组织代码.然儿,随着使用几种不同的选项属性切换到单一的setup 方法,许多开发人员面临的问题是-- 这会不会更混乱,因为一切都在一个方法中 乍一看可能很容易,但是实际上只需要花一点点时间来编写可重用的模块化代码. 让我们来看看如何做到这一点. 问题 Vue.js 2.x 的 Options API 是一种非常直观的分隔代码的方法 export default { data () { return { articles: [], se
-
Golang中使用Date进行日期格式化(沿用Java风格)
本文介绍了Golang中使用Date进行日期格式化,分享给大家,具体如下: Github https://github.com/noogo/date Date Date是一个基于time包装的一个日期包,通过此包可以快速创建日期.获取时间戳.毫秒数及最重要的日期格式化,另外你还可以继续使用time包下的所有函数(除time.Foramt(string)外)你可以通过以下方法快速创建一个Date对象: Now() WithTime(t time.Time) WithTimestamp(timest
-
Python 中 sorted 如何自定义比较逻辑
在 Python 中对一个可迭代对象进行排序是很常见的一个操作,一般会用到 sorted() 函数 num_list = [4, 2, 8, -9, 1, -3] sorted_num_list = sorted(num_list) print(sorted_num_list) 上面的代码是对整数列表 num_list 按从小到大的顺序进行排序,得到的结果如下 [-9, -3, 1, 2, 4, 8] 有时候不仅仅是对元素本身进行排序,而是在元素值的基础上进行一些计算之后再进行比较,比如将 nu
随机推荐
- javascript中select下拉框的用法总结
- Raid教程 全程图解手把手教你做RAID
- 深入解析Java的Struts框架中的控制器DispatchAction
- asp.net中MD5 16位和32位加密函数
- ASP中实现分页显示的七种方法
- Python中的map、reduce和filter浅析
- 解决ajax回调函数返回的字符串乱码问题
- JavaEE中用response向客户端输出中文数据乱码问题分析
- jsp中过滤器选择过滤器的写法详解
- 硬盘浏览程序,保存成网页格式便可使用
- VBS教程:属性-AtEndOfStream 属性
- ftp自动下载文件脚本分享(ftp命令下载文件)
- windows2003安装apache-mysql-php-phpmyadmin
- 一个qq菜单效果
- jQuery解决浏览器兼容性问题案例分析
- js实现微博发布小功能
- js 弹簧效果代码
- Android仿微信列表滑动删除之可滑动控件(一)
- PHP简单获取网站百度搜索和搜狗搜索收录量的方法
- PHP+JQUERY操作JSON实例