date()函数:

  PHP date()  参考:https://www.hi-docs.com/php/date.html

  Linux date()参考:http://www.cnblogs.com/barrychiao/archive/2012/10/08/2715808.html

获取某时间段以周、月、季度为粒度的时间段数组

  1. function getdays($day){//指定天的周一和周天
  2. $lastday=date('Y-m-d',strtotime("$day Sunday"));
  3. $firstday=date('Y-m-d',strtotime("$lastday -6 days"));
  4. return array($firstday,$lastday);
  5. }
  6. function getmonths($day){//指定月的第一天和最后一天
  7. $firstday = date('Y-m-01',strtotime($day));
  8. $lastday = date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  9. return array($firstday,$lastday);
  10.  
  11. }
  12. /**
  13. * 输入开始时间,结束时间,粒度(周,月,季度)
  14. * @param 参数一:开始时间
  15. * @param 参数二:结束时间
  16. * @param 参数三:粒度(周,月,季度)
  17. * @return 时间段字符串数组
  18. */
  19. function get_ld_times($st,$et,$ld){
  20. if($ld=='周'){
  21. $timeArr=array();
  22. $t1=$st;
  23. $t2=getdays($t1)['1'];
  24. while($t2<$et || $t1<=$et){//周为粒度的时间数组
  25. $timeArr[]=$t1.','.$t2;
  26. $t1=date('Y-m-d',strtotime("$t2 +1 day"));
  27. $t2=getdays($t1)['1'];
  28. $t2=$t2>$et?$et:$t2;
  29. }
  30. return $timeArr;
  31. }else if($ld=='月'){
  32. $timeArr=array();
  33. $t1=$st;
  34. $t2=getmonths($t1)['1'];
  35. while($t2<$et || $t1<=$et){//月为粒度的时间数组
  36. $timeArr[]=$t1.','.$t2;
  37. $t1=date('Y-m-d',strtotime("$t2 +1 day"));
  38. $t2=getmonths($t1)['1'];
  39. $t2=$t2>$et?$et:$t2;
  40. }
  41. return $timeArr;
  42. }else if($ld=='季度'){
  43. $tStr=explode('-',$st);
  44. $month=$tStr['1'];
  45. if($month<=3){
  46. $t2=date("$tStr[0]-03-31");
  47. }else if($month<=6){
  48. $t2=date("$tStr[0]-06-30");
  49. }else if($month<=9){
  50. $t2=date("$tStr[0]-09-30");
  51. }else{
  52. $t2=date("$tStr[0]-12-31");
  53. }
  54. $t1=$st;
  55. $t2=$t2>$et?$et:$t2;
  56. $timeArr=array();
  57. while($t2<$et || $t1<=$et){//月为粒度的时间数组
  58. $timeArr[]=$t1.','.$t2;
  59. $t1=date('Y-m-d',strtotime("$t2 +1 day"));
  60. $t2=date('Y-m-d',strtotime("$t1 +3 months -1 day"));
  61. $t2=$t2>$et?$et:$t2;
  62. }
  63. return $timeArr;
  64. }else{
  65. return array('参数错误!');
  66. }
  67. }

PHP date()获取某时间段以周、月、季度为粒度的时间段数组的更多相关文章

  1. java获取当前时间的年周月季度等的开始结束时间

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  2. java获取当前年、半年、季度、月、日、小时 开始结束时间等

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 获取 当前年.半年 ...

  3. C#根据当前时间获取周,月,季度,年度等时间段的起止时间

    最近有个统计分布的需求,需要按统计本周,上周,本月,上月,本季度,上季度,本年度,上年度等时间统计分布趋势,所以这里就涉及到计算周,月,季度,年度等的起止时间了,下面总结一下C#中关于根据当前时间获取 ...

  4. mysql中增加某一时间段内的时间数据(包含:时间、年、月、日、第几周、季度)

    创建表dim_date: create table `dim_date` ( `year` int (20), `month` int (20), `day` int (20), `week` int ...

  5. Flex自定义组件开发之日周月日期选择日历控件

    原文:Flex自定义组件开发之日周月日期选择日历控件         使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的 ...

  6. [转] Js获取 本周、本月、本季度、本年、上月、上周、上季度、去年时间段

    /** * 针对时间的工具类 */ var DateTimeUtil = function () { /*** * 获得当前时间 */ this.getCurrentDate = function ( ...

  7. js 获取每月有几周,根据年月周获取该周从周一到周日的日期等方法

    本文基于react-native 本人在用react-native写一个关于课程表的APP时需要课程表按照日期周期显示,网上查了许多方法,都没有达到自己想要的效果,根据一些方法的参考,再根据自己思维写 ...

  8. PHP获取接下来一周的日期

    //获取接下来一周的日期 function GetWeeks() { $i=0; $weeks=[]; for ($i;$i<=7;$i++){ $month=date('m',time()+8 ...

  9. PHP获取某年第几周的开始日期和结束日期

    http://blog.csdn.net/qq_27080247/article/details/50835956 /** * 获取某年第几周的开始日期和结束日期 * @param int $year ...

随机推荐

  1. 调用Windows属性窗口

    简述 在Windows系统下.可以通过:右键 -> 属性,来查看文件/文件夹对应的属性信息,包括:常规.安全.详细信息等. 简述 共有类型 共有类型 首先,需要包含头文件: #include & ...

  2. MFC,C++,VC++,VS2010 之间究竟是什么关系

    C++是在C语言的基础上发展而来的面向对象的一种语言: MFC是基于C++类的窗口开发工具,内含大量的基类.降低编程人员的工作量: VC++是一种开发工具. VS2010是更高版本号的开发工具,功能强 ...

  3. MongoDB Shell (mongo)

    https://docs.mongodb.com/getting-started/shell/client/ The mongo shell is an interactive JavaScript ...

  4. vue -- 7 个 有用的 Vue 开发技巧

    1 状态共享 随着组件的细化,就会遇到多组件状态共享的情况, Vuex当然可以解决这类问题,不过就像 Vuex官方文档所说的,如果应用不够大,为避免代码繁琐冗余,最好不要使用它,今天我们介绍的是 vu ...

  5. 将ubuntu安装在用剩下的硬盘改装成的移动硬盘时遇到的问题及解决办法

    安装时分完盘后提示:“分配到/的分区开始于3584字节,使用磁盘的最小对齐,这可能造成非常差的性能..." 解决办法: 回到windows使用分区助手等工具先分好盘而不是在安装时分盘(这样分 ...

  6. 使用 Spring HATEOAS 开发 REST 服务--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/index.html?ca=drs-&utm_source ...

  7. 在cncc的最后几天的笔记

    数据库范式:http://blog.csdn.net/fg2006/article/details/6936439 数据库事务隔离级别:http://blog.csdn.net/fg2006/arti ...

  8. ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)

    前言 在上篇文章中,详细分析了RACSignal是创建和订阅的详细过程.看到底层源码实现后,就能发现,ReactiveCocoa这个FRP的库,实现响应式(RP)是用Block闭包来实现的,而并不是用 ...

  9. Division Game UVA - 11859 Nim

    Code: #include<cstdio> #include<algorithm> using namespace std; #define maxn 10005 int n ...

  10. 我的投资案例(3)-看好互联网和金融两大朝阳行业,参投入股垂直金融招聘平台"职业梦CareerDream.cn"

     作为一名喜欢读书,关注中国和欧美国家发展的知识青年,  同时作为一名程序员和对金融投资感兴趣的业余爱好者,本人一直看好  以IT互联网为代表的科技和以投资VC为代表的金融,这2大朝阳行业的发展.   ...