一些日期的计算

某个月内的所有天数:

  1. public function getMonthDay ($date)
  2. {
  3. $stattime = strtotime(date('Ym01',strtotime($date .'01')));
  4. $day = date('t',strtotime($date .'01'));
  5. $i = 0;
  6. $arr = [];
  7. while ($i < $day) {
  8. $arr[$i]['datetime'] = date('Ymd',$stattime + $i * 86400);
  9. $i++;
  10. }
  11.  
  12. return $arr;
  13. }

今日:图表X轴以小时为单位,每隔3小时显示一个数值。

  1. public function getToday ($date)
  2. {
  3. //今日:图表X轴以小时为单位,每隔3小时显示一个数值。
  4. $today = strtotime ($date);
  5. $todayEnd = strtotime ($date . '+1 day');
  6. $hours = ($todayEnd - $today) / (3 * 3600);
  7.  
  8. $i = 0;
  9. $arr = [];
  10. while ($i < $hours) {
  11. $arr[$i]['starthour'] = date ('YmdH' , $today + $i * 3 * 3600);
  12. $arr[$i]['endhour'] = date ('YmdH' , $today + (($i + 1) * 3 -1) * 3600);
  13. $i++;
  14. }
  15. return $arr;
  16. }

昨日:图表X轴以小时为单位,每隔3小时显示一个数值。

  1. public function getYesterday ($date)
  2. {
  3. //昨日:图表X轴以小时为单位,每隔3小时显示一个数值。
  4. $today = strtotime ($date);
  5. $yesterday = strtotime ($date .'-1 day');
  6. $hours = ($today - $yesterday) / (3 * 3600);
  7.  
  8. $i = 0;
  9. $arr = [];
  10. while ($i < $hours) {
  11. $arr[$i]['starthour'] = date ('YmdH' , $yesterday + $i * 3* 3600);
  12. $arr[$i]['endhour'] = date ('YmdH' , $yesterday + (($i + 1) * 3 -1)* 3600);
  13. $i++;
  14. }
  15.  
  16. return $arr;
  17. }

近1月:图表X轴以天为单位,每隔7天显示一个数值。

  1. public function getMonth ($date)
  2. {
  3. //近1月:图表X轴以天为单位,每隔7天显示一个数值。
  4. $mon = date ('Ym01' , strtotime ($date));
  5.  
  6. $month = strtotime(date('Ym01',strtotime($mon .'-1 month'))); //上个月第一天
  7. $monthend = strtotime(date ('Y-m-t',$month)); // 上个月最后一天
  8.  
  9. $days = floor(($monthend - $month) / (7 * 24 * 3600));
  10. if ($days<4) {
  11. $days = 4; // 28天的月份
  12. }
  13. $i = 0;
  14. $arr = [];
  15. while ($i < $days) {
  16. $arr[$i]['startdays'] = date ('Ymd' , $month + $i * 7 * 24 * 3600);
  17. if($days==$i+1){
  18. $arr[$i]['enddays'] = date('Ymd',$monthend);//上个月最后一天
  19. }else{
  20. $arr[$i]['enddays'] = date ('Ymd' , $month + (($i + 1) * 7-1) * 24 * 3600);
  21. }
  22. $i++;
  23. }
  24.  
  25. return $arr;
  26. }

近6月:图表X轴以月为单位,每个月份显示一个数值。

  1. public function getSixMonth ($date)
  2. {
  3. //近6月:图表X轴以月为单位,每个月份显示一个数值。
  4. $i = 0;
  5. $arr = [];
  6. $date = date('Y-m-01',strtotime($date));
  7. while ($i < 6) {
  8. $arr[$i]['startmonth'] = date ('Ym' , strtotime ($date .'-'. (6 - $i) . ' month'));
  9. $arr[$i]['endmonth'] = date ('Ym' , strtotime ($date .'-'.(6 - $i) . ' month'));
  10. $i++;
  11. }
  12. return $arr;
  13. }

一些日期的计算方式 PHP的更多相关文章

  1. Java中使用LocalDate根据日期来计算年龄

    Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat ...

  2. Python获取当前日期和日期差计算

    在Python中获取日期和时间很简单,主要使用time和datetime包 1.获取当前时间并格式化 from dateutil import rrule from datetime import d ...

  3. sas编程-日期相差计算函数 intnx

    sas编程-日期相差计算函数 intnx 示例代码: data _null_;    lastdate=intnx('year',today(),-100);    format lastdate  ...

  4. System.currentTimeMillis()计算方式与时间的单位转换

    目录[-] 一.时间的单位转换 二.System.currentTimeMillis()计算方式 一.时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 ...

  5. NTC(负温度)热敏电阻.阻值的计算方式

    来源 :http://blog.csdn.net/blue0432/article/details/8690190 现在低成本测温方案中NTC热敏电阻用的比较多,一般采用查表的方法获取温度值,这就牵涉 ...

  6. mysql中TPS, QPS 的计算方式

    今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容.  在做db基准测试的时候,qps,tps 是衡量数 ...

  7. Java通过jxl解析Excel文件入库,及日期格式处理方式 (附源代码)

    JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. 本文是项目中用到的一个实例,先通过上传xls文件(包含日期),再通过jxl进行读取上传 ...

  8. 自学Aruba1.3-WLAN一些基本常识802.11n速率计算方式、802.11n及802.11AC速率表

    点击返回:自学Aruba之路 自学Aruba1.3-WLAN一些基本常识802.11n速率计算 1. 802.11n速率计算方式1.1 802.11n使用的主要技术 802.11n采用MIMO多天线技 ...

  9. oracle行转列、列转行、连续日期数字实现方式及mybatis下实现方式

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9977591.html 九月份复习,十月份考试,十月底一直没法收心,赶在十一初 由于不可抗拒的原因又不得不重新找 ...

随机推荐

  1. Java 生态核心知识点整理

    又到了求职的金三银四的黄金月份,我相信有不少小伙伴已经摩拳擦掌的准备寻找下一份工作. 就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句 ...

  2. PS制作水火相溶特效文字图片

    最终效果 一.新建一个1400*900像素的画布. 二.由上到下拉一个深灰到纯黑径向渐变. 三.输入字母S,并用ctrl+t拉到适合的大小,并且降低不透明度. 四.拖入水花素材(如果大家有水花笔刷的话 ...

  3. 如何用java发送Http的post请求,并传递参数

    书写方法,请参考以下代码: package utils; import java.io.BufferedReader; import java.io.IOException; import java. ...

  4. XP_CMDSHELL 执行命令添加 windows 用户的方法

    1. 之前看过不少文档 可以使用 xp_SQLCMD的命令来进行渗透处理, 今天因为公司的服务器又中毒了 自己学习了下. 2. 修改SQLSERVER的设置 远程登录数据库 sqlcmd -S 10. ...

  5. mysql查看存储过程函数

    查询数据库中的存储过程和函数 select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE'   //存储过程       ...

  6. 五、Java多人博客系统-2.0版本-数据库设计

    数据库设计表如下:文章类别表.文章表.评论表.留言表. 文章列表表:存放文章类别,首页菜单生成也是从这个表取的. 文章表:存放文章标题.发表时间.内容等信息. 评论表:文章评论内容. 留言表:用户发表 ...

  7. 皮尔逊相关系数(Pearson Correlation Coefficient, Pearson's r)

    Pearson's r,称为皮尔逊相关系数(Pearson correlation coefficient),用来反映两个随机变量之间的线性相关程度. 用于总体(population)时记作ρ (rh ...

  8. Nim积解法小结

    由于某毒瘤出题人 redbag 不得不学习一下这个史诗毒瘤算法. 本文参考了 Owaski 的 GameTheory 的课件. 定义 我们对于一些二维 \(\mathrm{Nim}\) 游戏(好像更高 ...

  9. 记录一次被bc利用跳转过程分析

    挖公司的项目站,发现站点一访问就直接跳转到了赌博站,有点懵逼,简单分析下hc利用过程: 公司项目站:http://***.com 当我访问它: 通过http:***.com直接跳转到了306648.c ...

  10. BZOJ 3192: [JLOI2013]删除物品(树状数组)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=3192 题解: 首先每次一定是来回移动直到最大的到顶上. 所以我们可以将第两个堆的堆顶接起来 ...