php获取昨日时间段内,PHP 获取 特定时间范围 类

1 <?php2 /**3 * Created by PhpStorm.4 * Author: 林冠宏5 * Date: 2016/6/46 * Time: 16:067 *8 * 前序:9 * 总体来说,我更应该是一个 android 移动开发者,而不是一个 phper,如果说只做移动端的 APP ,10 * 我也不会学这么多,这么 2年来,几乎素有的服务器接口都也是 由我一手操办,用的是 pHp,目前大三,11 * 我是在很不愿意的情况下完成这个类的,因为 项目分工的 后台程序员,没完善这块,我来搞,时间就不12 * 够了。 Whatever,enjoy this `Class`.13 *14 * 功能:15 * 1,产生 要查找的 时间范围16 * 2,格式是 时间戳,拥有时间戳,可以任意处理17 * 3,常见的使用场景是,根据 时间范围 搜索数据18 */

19

20 classTimeRangeHelper{21

22 /** 一天 和 一周的时间轴 大小是肯定的,月的天数不能确定,年也是,故不作定义*/

23 private $DayTime;24 private $WeekTime;25 private $openLog ; /** 是否开启调试信息输出*/

26

27 functionTimeRangeHelper(){28 $this->DayTime = 24*60*60;29 $this->WeekTime = 7*24*60*60;30 $this->openLog = true;31 }32

33 /** 整体测试函数*/

34 public functionRangeTest(){35 /** 日 测试*/

36 $this->GetTimeRang("日","2016-6-5");37 $this->GetTimeRang("日");38 $this->GetTimeRang("日","2015-6-1");39 echo "";40 /** 周 测试*/

41 $this->GetTimeRang("周");42 $this->GetTimeRang("周","-1");43 $this->GetTimeRang("周","14");44 $this->GetTimeRang("周","6");45 echo "";46 /** 月 测试*/

47 $this->GetTimeRang("月");48 $this->GetTimeRang("月","2015-5");49 $this->GetTimeRang("月","2016-7");50 $this->GetTimeRang("月","2016-11");51 echo "";52 /** 年 测试*/

53 $this->GetTimeRang("年","2011");54 $this->GetTimeRang("年");55 $this->GetTimeRang("年","2015");56 }57

58 public function GetTimeRang($timeType = null,$selectTime = null){59 header("content-type: text/html;charset=utf-8");60 error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息

61 /** 默认是周*/

62 if($timeType == null){63 $timeType ="周";64 $this->GetWeekRange($timeType);65 }else{66 switch($timeType){67 case "日": //24小时内所有

68 $this->GetDayRange($selectTime);69 break;70 case "周": //一周内所有

71 $this->GetWeekRange($selectTime);72 break;73 case "月":

74 $this->GetMonthRange($selectTime);75 break;76 case "年":

77 $this->GetYearRange($selectTime);78 break;79 default:

80 echo("参数错误!");81 break;82 }83 }84 }85

86 /** -----------------获取 日 的范围----------------87 * $selectTime 是否获取特定的 某一天 格式是 y-m-d88 */

89 private function GetDayRange($selectTime){90 /** 防止 日后 添加 日 可选功能,格式是 y-m-d*/

91 if($selectTime==null){92 $timeF = strtotime(date("Y-m-d",time()));93 }else{94 $timeF = strtotime($selectTime);95 }96 $timeL = $timeF + $this->DayTime;97 if($this->openLog) {98 echo "日获取范围->" . date("Y-m-d H:i:s", $timeF) . "-----" . date("Y-m-d H:i:s", $timeL) . "";99 }100 return " and (entryTime between '$timeF' and $timeL''";101 }102

103 /** -----------------获取 周 的范围----------------104 * $selectTime 是否获取特定的 某一周 格式是 整数,含负数105 */

106 private function GetWeekRange($selectTime){107 $timeF = strtotime(date("Y-m-d",time()));108 $dayOfWeek = date("N",time());109 $timeF = $timeF - (int)$dayOfWeek * $this->DayTime + 1; //加一 纠正

110 /** 防止 日后 添加 周 可选功能,格式是 整数,含负数,指示 是距离当前这周的第几周*/

111 if($selectTime!=null){112 switch($selectTime){113 case 0: //特殊情况 0 是本周

114 $timeL = $timeF + $this->WeekTime;115 break;116 case 1: //特殊情况 1 下一周

117 $timeF = $timeF + 1 * $this->WeekTime;118 $timeL = $timeF + 1 * $this->WeekTime;119 break;120 default:

121 $dis = abs($selectTime) - 1; //获取差,别忘了绝对值

122 $timeL = $timeF + (int)$selectTime * $this->WeekTime;123 //位置纠正

124 if($timeL < $timeF){125 $temp = $timeF;126 $timeF = $timeL;127 $timeL = $temp - $dis * $this->WeekTime;128 }else{129 $timeF = $timeF + $dis * $this->WeekTime;130 }131 break;132 }133 }else{134 $timeL = $timeF + $this->WeekTime;135 }136 if($this->openLog) {137 echo "周获取范围->" . date("Y-m-d H:i:s", $timeF) . "-----" . date("Y-m-d H:i:s", $timeL) . "";138 }139 return " and (entryTime between '$timeF' and $timeL''";140 }141

142 /** -----------------获取 月 的范围----------------143 * $selectTime 是否获取特定的 某一月 格式是 y - m144 */

145 private function GetMonthRange($selectTime){146 /** 防止 日后 添加 月 可选功能,格式是 y - m*/

147 if($selectTime==null){148 $dayNumOfMonth = date("t",time()); //获取本月所有天数

149 $timeF = strtotime(date("Y-m",time()));150 }else{151 $dayNumOfMonth = date("t",strtotime($selectTime)); //获取传过来的月所有天数

152 $timeF = strtotime($selectTime);153 }154 $timeL = $timeF + $dayNumOfMonth * $this->DayTime;155 if($this->openLog) {156 echo "月获取范围->" . date("Y-m-d H:i:s", $timeF) . "-----" . date("Y-m-d H:i:s", $timeL) . "";157 }158 return " and (entryTime between '$timeF' and $timeL''";159 }160

161 /** -----------------获取 年 的范围----------------162 * $selectTime 是否获取特定的 某一年 格式是 y163 */

164 private function GetYearRange($selectTime){165 /** 防止 日后 添加 月 可选功能,格式是 y*/

166 if($selectTime==null){167 $timeF = strtotime(date("Y",time())."-1-1");168 $year = (int)date("Y",time()) + 1;169 }else{170 $timeF = strtotime($selectTime."-1-1");171 $year = (int)$selectTime + 1;172 }173 $timeL = strtotime($year."-1-1");174 if($this->openLog){175 echo "年获取范围->".date("Y-m-d H:i:s",$timeF)."-----".date("Y-m-d H:i:s",$timeL)."";176 }177 return " and (entryTime between '$timeF' and $timeL''";178 }179

180 }181

182 $controller =newTimeRangeHelper();183 $func =$_REQUEST['func'];184 $controller->$func();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF目录 隐藏 引言 [Introduction]背景 [Background]附加行为 [Attached Behaviors]论证 [Demonstration]结论 [Conclusion]参考 [References]版本历史 [Revision History]许可证 [License]作者&#xff…

地图是怎么知道实时路况的?因为我们每个人都是“百万年薪级”数据贡献者

【导读】地图公司给地图“上色”主要靠数据&#xff0c;数据够则地图生。数据是地图的生命&#xff0c;车速是路况的根本&#xff0c;地图获取数据主要有两种方式&#xff1a;自给自足、仰给于人上班出门&#xff0c;点开地图&#xff0c;前面红色&#xff0c;后面红色&#xf…

matlab行程编码,报告论文:游程(行程)长度编码matlab(或者C++)实现

游程(行程)长度编码matlab(或者C)实现html我须要的是算法实现,好比说我输入序列{1,0,0,0,0,1,1},输出为{11,04,12}.后面输出结果的含义是,"11"表示1的个数为1,"04"表示后面连续0的个数为4,"11"表示最后面出现连续1的次数为2次ios#include算法#in…

MySQL优化从执行计划开始(explain超详细)

前言小伙伴一定遇到过这样反馈&#xff1a;这页面加载数据太慢啦&#xff0c;甚至有的超时了&#xff0c;用户体验极差&#xff0c;需要赶紧优化&#xff1b;反馈等同于投诉啊&#xff0c;多有几次&#xff0c;估计领导要找你谈话啦。于是不得不停下手里头的活&#xff0c;赶紧…

一个老程序员的忠告:不要一辈子靠技术生存

图丨《Ready Player One》文丨源&#xff1a;世界经理人我现在是自己做&#xff0c;但我此前有多年在从事软件开发工作&#xff0c;当回过头来想一想自己&#xff0c;觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话&#xff0c;希望你们能从我们的体会中&#xff0c;多…

大端(Big Endian)、小端(Little Endian)

端模式&#xff08;Endian&#xff09;的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类&#xff0c;从圆头开始将鸡蛋敲开的人被归为Big Endian&#xff0c;从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就…

怎样安装php52-71,CentOS如何安装PHP5和PHP7

推荐(免费)&#xff1a;PHP7安装PHP5下载解压二进制包[roottest-a src]# cd /usr/local/src/[roottest-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[roottest-a src]# tar jxvf php-5.6.32.tar.bz2编译安装PHP./configure --prefix/usr/local/php --wit…

应用程序自动更新组件GeneralUpdate3.2.1发布

GeneralUpdate开源组件更新公告一、组件简介GeneralUpdate是基于.net standard开发的一款&#xff08;c/s应用&#xff09;自动升级程序。该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf&#xff0c;控制台应用&#xff0c;winfrom。本组件&#xff08;除…

你不知道C#只带有 get 访问器的属性是只读属性?

问题窥探之前有个哥们在使用Newtonsoft.Json反序列化的时候&#xff0c;发现明明有数据&#xff0c;但是就是序列化不出来数据到实体里面。咋一看&#xff0c;确实没什么问题啊&#xff0c;字符串的数据是存在的。那么问题出在哪里呢。解决思路1、我让他把字符串复制出来&#…

java中formfile,基于Struts FormFile上传文件

基于Struts文件上传(FormFile)详解Struts中FormFile用于文件进行上传1.在jsp文件中进行定义名字&#xff1a;头像:2.在Form表单中定义FormFile/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/package com.yourcompany.struts.form;import j…

葬身李刚儿子车轮下的漂亮女孩

这么一个青春、靓丽的女孩~~~~~~~~就这样丧生在官二代的铁轮下~~~~~~~~~~~~可惜了~~~~~~~~~~~~哀痛啊&#xff0c;什么世道&#xff01;转载于:https://blog.51cto.com/jsfido/418494

EF Core事务提交,分布式事务

控制事务可以使用 DbContext.Database API 开始、提交和回滚事务。 以下示例显示了在单个事务中执行的两个 SaveChanges 操作以及一个 LINQ 查询&#xff1a;using var context new BloggingContext(); using var transaction context.Database.BeginTransaction();try {cont…

RTC 媒体流数据包丢包问题解决

最近在一个测试中&#xff0c;遇到了OCS和PSTN通话之间的声音出现严重的断续问题&#xff0c;用户的使用体验就是听对方的声音不是完整的&#xff0c;有部分的语音丢失&#xff0c;在服务器上判断就是RTC数据包丢失了。专业术语就是Voice clipping。先看看丢包的恐怖情况&#…

global.php,global.php

/*** 自动判断PHP版本&#xff0c;并把所有环境变量转为全局变量** author Avenger * version $Id 2003-05-18 13:01:14 $*/ function pmyoutput(&$a) {if (is_array($a)) {array_walk($a,"pmyoutput");} else {$a stripslashes($a);$a str_replace("&…

如何在 ASP.Net Core 中使用 Autofac

依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性&#xff0c;ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持&#xff0c;然而内置的依赖注入容器相比成熟的 依赖注入容器 太弱了。为了解决这个问题&#xff0c;可以使用第三方的依…

2010年11月编程语言排行榜:手机里的代码

【51CTO独家特稿】Tiobe今天发布了最新一期的编程语言排行榜。本期榜单的前五名与10月份没有明显变化&#xff0c;依然是Java、C、C、PHP和Python&#xff1b;Objective-C的增长势头强劲。本期另外一个值得注意的语言是重回前20名NXT-G。NXT-G是一种集成在乐高&#xff08;LEGO…

php网站开发期末大作业,大学生期末网页大作业

【实例简介】6页面的网页设计&#xff0c;是个人主页类型。包含了6个页面&#xff0c;包含视频、脚本等元素。水平不高&#xff0c;但交选修作业就足够了。【实例截图】【核心代码】为ai而狂└── 为ai而狂├── FLVPlayer_Progressive.swf├── Halo_Skin_3.swf├── Scri…

NET问答: 如何迭代 Enum ?

咨询区 Peter Mortensen&#xff1a;如何使用 C# 迭代 enum ?下面的代码会编译失败&#xff0c;错误信息: Suit is a type but is used like a variablepublic enum Suit {Spades,Hearts,Clubs,Diamonds }public void EnumerateAllSuitsDemoMethod() {foreach (Suit suit in S…

python hexdigest,Java方法,可以为Hex中的HMAC-SHA256提供与Python方法相同的输出

你确定你的密钥和输入是相同的,并在java和python中正确编码&#xff1f;HMAC-SHA256在两个平台上的工作方式相同.Java的Mac sha256_HMAC Mac.getInstance("HmacSHA256");SecretKeySpec secretKey new SecretKeySpec("1234".getBytes(), "HmacSHA256…

承接数字油画图稿/线条图定制(出图)业务

集异璧实验室对外提供数字油画图纸&#xff08;图稿/线条图&#xff09;定制和自选业务&#xff0c;欢迎洽谈。 定制流程&#xff1a; &#xff08;1&#xff09;贵方将图片传给我方&#xff1b; &#xff08;2&#xff09;我方出图&#xff0c;提供效果图&#xff1b; &#…