目录

一、时间戳和日期互相转换

二、PHP获取今日、昨日、上周、本周、上月、本月的起始时间戳

三、获取当前周的每天的起始时间

四、获取周的起始时间

1、根据指定时间获取所在周的起始时间和结束时间

2、通过时间戳 获取某周的开始时间和结束时间

五、获取指定日期是周几

六、通过某个日期段内的周几获取对应的日期  开始日期 结束日期

七、获取指定日期之间的各个周

八、获取指定日期之间的各个月

九、根据指定日期获取所在月的起始时间和结束时间

十、获取指定年份的每个月的起始时间

十一、获取指定月份的起止时间


一、时间戳和日期互相转换

// 获取时间戳
$date = time(); // 获取当前时间戳
$date = mktime(0, 0, 0, 10, 10, 2020); // 获取指定时间的时间戳 2020年10月10日0时0分0秒// 日期转换为时间戳
$date = "2019-08-08 08:08:08";
$timestamp = strtotime($date);// 将时间戳转换成日期
$date = time();
echo date('Y-m-d', $date); // 输出格式化的日期(年-月-日)// 将时间戳转换为时间格式
$date = time();
echo date('H:i:s', $date); // 输出格式化的时间(小时:分钟:秒)// 日期格式化
$date = time();
echo date('Y-m-d H:i:s', $date); // 输出格式化的日期时间(年-月-日 小时:分钟:秒)// 将时间戳转换为星期
$date = time();
echo date('l', $date); // 输出星期几的完整文本形式(例如:Sunday)// 将时间戳转换为月份
$date = time();
echo date('F', $date); // 输出月份的完整文本形式(例如:January)

二、PHP获取今日、昨日、上周、本周、上月、本月的起始时间戳

//今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;//昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;//本周起始时间戳和结束时间戳
$startTime = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));
$endTime = mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y'));//上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));//本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));//上月起始时间戳和结束时间戳
$begin_time = date('Y-m-01 00:00:00',strtotime('-1 month'));
$end_time = date("Y-m-d 23:59:59", strtotime(-date('d').'day'));//获取当前季度
$season = ceil((date('m'))/3);
//本季度起始时间戳和结束时间戳
$starTime=mktime(0, 0, 0,$season*3-3+1,1,date('Y'));
$endTime = mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'));//当年起始时间戳和结束时间戳
$startTime  = strtotime(date("Y",time())."-1"."-1");
$overTime  = strtotime(date("Y",time())."-12"."-31");  

三、获取当前周的每天的起始时间

function getDay(){$timestr = time();    //当前时间戳$now_day = date('w',$timestr);  //当前是周几//获取周一$monday_str = $timestr - ($now_day-1)*60*60*24;$monday = date('Y-m-d', $monday_str);//获取周日$sunday_str = $timestr + (7-$now_day)*60*60*24;$sunday = date('Y-m-d', $sunday_str);for($i=0;$i<7;$i++)  {  $arr[$i]['start']=strtotime(date('Y-m-d',strtotime($monday.'+'.$i.'day')));  $arr[$i]['end']=strtotime(date('Y-m-d',strtotime($monday.'+'.$i.'day')). " 24:00:00");  }return $arr;
}

四、获取周的起始时间

1、根据指定时间获取所在周的起始时间和结束时间

/**
* @param data 日期
*/
function get_weekinfo_by_time($date) {$idx = strftime("%u", strtotime($date));$mon_idx = $idx - 1;$sun_idx = $idx - 7;return array('week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400),'week_end_day' => strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400),);
}

2、通过时间戳 获取某周的开始时间和结束时间

/**
* @param time 时间
* @param first 表示每周星期一为开始日期 0表示每周日为开始日期
*/
function getWeekMyActionAndEnd($time = '', $first = 1)
{//当前日期if (!$time) $time = time();$sdefaultDate = date("Y-m-d", $time);//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期//获取当前周的第几天 周日是 0 周一到周六是 1 - 6$w = date('w', strtotime($sdefaultDate));//获取本周开始日期,如果$w是0,则表示周日,减去 6 天$week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));//本周结束日期$week_end = date('Y-m-d', strtotime("$week_start +6 days"));return array("week_start" => $week_start, "week_end" => $week_end);
}

五、获取指定日期是周几

/**
* @param data 日期
*/
function DateToWeek($date){//强制转换日期格式$date_str=date('Y-m-d',strtotime($date));//封装成数组$arr=explode("-", $date_str);//参数赋值//年$year=$arr[0];//月,输出2位整型,不够2位右对齐$month=sprintf('%02d',$arr[1]);//日,输出2位整型,不够2位右对齐$day=sprintf('%02d',$arr[2]);//时分秒默认赋值为0;$hour = $minute = $second = 0;   //转换成时间戳$strap = mktime($hour,$minute,$second,$month,$day,$year);//获取数字型星期几$number_wk=date("w",$strap);//自定义星期数组$weekArr=array("周日","周一","周二","周三","周四","周五","周六");//获取数字对应的星期return $weekArr[$number_wk];
}

六、通过某个日期段内的周几获取对应的日期  开始日期 结束日期

/**
* @param data 日期 array(start_date,end_data)
*/
function getDateByWeek($data)
{$start_date = strtotime($data['start_date']);$end_date = strtotime($data['end_date']);$days = ($end_date - $start_date) / 86400;$weekArr = array('周日','周一','周二','周三','周四','周五','周六');$newDate = array();// 组建数组格式 $dataWeek['日期'] => 星期for ($i=0; $i < $days; $i++) { $num_week = date('w',$start_date+($i*86400));$dateWeek[date('Y-m-d',$start_date+($i*86400))] = $weekArr[$num_week];}// 查找两个数组的交集,即获取提交的星期对应的日期$newDate=array_intersect($dateWeek,$data['items']);// 获取数组中的键值(日期),并组成一个新数组$date = array_keys($newDate);return $date;
}

七、获取指定日期之间的各个周

/**
* @param sdate 开始日期
* @param edate 结束日期
*/
function get_weeks($sdate, $edate) {$range_arr = array();// 检查日期有效性check_date(array($sdate, $edate));// 计算各个周的起始时间do {$weekinfo = get_weekinfo_by_date($sdate);$end_day = $weekinfo['week_end_day'];$start = substr_date($weekinfo['week_start_day']);$end = substr_date($weekinfo['week_end_day']);$range = "{$start} ~ {$end}";$range_arr[] = $range;$sdate = date('Y-m-d', strtotime($sdate)+7*86400);}while($end_day < $edate);return $range_arr;
}/*** 检查日期的有效性 YYYY-mm-dd* @param array $date_arr* @return boolean*/
function check_date($date_arr) {$invalid_date_arr = array();foreach ($date_arr as $row) {$timestamp = strtotime($row);$standard = date('Y-m-d', $timestamp);if ($standard != $row) $invalid_date_arr[] = $row;}if ( ! empty($invalid_date_arr)) {die("invalid date -> ".print_r($invalid_date_arr, TRUE));}
} /*** 截取日期中的月份和日* @param string $date* @return string $date*/function substr_date($date) {if ( ! $date) return FALSE;return date('m-d', strtotime($date));}/*** 根据指定日期获取所在周的起始时间和结束时间*/function get_weekinfo_by_date($date) {$idx = strftime("%u", strtotime($date));$mon_idx = $idx - 1;$sun_idx = $idx - 7;return array('week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400),'week_end_day' => strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400),);}

八、获取指定日期之间的各个月

/**
* @param sdate 开始日期
* @param edate 结束日期
*/
function get_months($sdate, $edate) {$range_arr = array();do {$monthinfo = get_monthinfo_by_date($sdate);$end_day = $monthinfo['month_end_day'];$start = substr_date($monthinfo['month_start_day']);$end = substr_date($monthinfo['month_end_day']);$range = "{$start} ~ {$end}";$range_arr[] = $range;$sdate = date('Y-m-d', strtotime($sdate.'+1 month'));}while($end_day < $edate);return $range_arr;}/*** 截取日期中的月份和日* @param string $date* @return string $date*/function substr_date($date) {if ( ! $date) return FALSE;return date('m-d', strtotime($date));}/*** 根据指定日期获取所在月的起始时间和结束时间*/function get_monthinfo_by_date($date){$ret = array();$timestamp = strtotime($date);$mdays = date('t', $timestamp);return array('month_start_day' => date('Y-m-1', $timestamp),'month_end_day' => date('Y-m-'.$mdays, $timestamp));}

九、根据指定日期获取所在月的起始时间和结束时间

/**
* @param date 日期
*/
function get_monthinfo_by_date($date){$ret = array();$timestamp = strtotime($date);$mdays = date('t', $timestamp);return array('month_start_day' => date('Y-m-1', $timestamp),'month_end_day' => date('Y-m-'.$mdays, $timestamp));
}

十、获取指定年份的每个月的起始时间

/**
* @param year 年份
*/
function getMonthByDate($year)
{// $year = '2019';$yeararr = [];$month = [];for ($i=1; $i <=12 ; $i++) { $yeararr[$i] = $year.'-'.$i;}foreach ($yeararr as $key => $value) {$timestamp = strtotime($value );$start_time = date( 'Y-m-1 00:00:00', $timestamp );$mdays = date( 't', $timestamp );$end_time = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );$month[$key]['start_time'] = strtotime($start_time);$month[$key]['end_time'] = strtotime($end_time);}return $month;
}

十一、获取指定月份的起止时间戳

/**
* 获取指定月份的时间戳
* @param $date Y-m
*/
function get_month_begin_end($date){// $date = '2018-11';$data['begin_time'] = strtotime($date);  //指定月份月初时间戳  $data['end_time'] = mktime(23,59,59,date('m',strtotime($date))+1,00);   //指定月份月末时间戳return $data;
}

PHP获取时间戳、获取天周月的起始时间、指定时间所在周、指定时间的各个周等相关函数相关推荐

  1. 获取时间戳(1970年1月1日零点整至当前时间的毫秒数)

    C# 时间戳格式一 /// <summary>/// 获取时间戳(1970年1月1日零点整至当前时间的毫秒数)/// </summary>/// <returns> ...

  2. php 显示当前年月日时分秒,php 获取当前前后年、月、星期、日、时分秒的时间...

    php 获取今天前后年.月.星期.日.时分秒的时间. 通过设置时间戳函数strtotime()的参数获取时间. //获取当前时间echo date('Y-m-d H:i:s',strtotime('n ...

  3. echarts 统计图周月切换_用echarts做报表按统计时间数据记录

    自己也来整理一下,好记好消化↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑ 按日查询: createtime:数据表里面的时间字段 t_voipchannelrecord :表名 SELECT ...

  4. 日期对象getTime()获取时间戳

    1.日期对象(时间对象)可以直接使用? 需要手动创建Date对象,Date是一个函数 不是一个内置对象 let d = new Date()//创建了一个当前时间日期对象 console.log(d) ...

  5. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  6. Oracle按日周月分组统计,及next_day()函数详解

    1.概述 工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月. 日月比较容易处理,周的话可以通过next_day()函数实现. 2.实例问题 如下,有一张表ljb_test,包括 ...

  7. php 时间戳获取周几,PHP实现根据时间戳获取周几的方法,php戳获取周_PHP教程

    PHP实现根据时间戳获取周几的方法,php戳获取周 本文实例讲述了PHP实现根据时间戳获取周几的方法.分享给大家供大家参考,具体如下: 获取某个时间戳的周几,以及未来几天以后的周几 其中: $time ...

  8. java获取时间戳(计算两个时间相差几天几小时几秒,获取当前日期是周几。。。)

    java时间相关 博主所有博客都是验证过的 获取一个时间的时间戳 //获取当前时间戳Calendar cal1 = Calendar.getInstance();cal1.setTime(new Da ...

  9. Java:DateUtils 获取 本上下(周/月)周一周日 最后一天 当月多少天

    前言 使用日期函数,获取当月多少天,当前第几月,以及各种与时间有关系的操作: 这篇文章草稿是在19-5-30写好的,一直想完善,写个一网打尽的,奈何自己懒,一直没写完,时隔一年,写完吧,基本上可以处理 ...

最新文章

  1. Git常见问题解决方案指北
  2. lenovo电脑_联想推出了其最新的ThinkBook笔记本电脑产品ThinkBookPlus
  3. 电脑组装与维护教程_小白不会装机?教你如何自己组装一台电脑。装机图文教程...
  4. [DFS|剪枝] leetcode 22 括号生成
  5. 20200819:力扣202周周赛题解记录
  6. eclipse 返回上一个选项卡、注释及取消注释 、大写变小写、 光标跳到下一行快捷键
  7. JavaScript的学习--生成二维码
  8. TEM:基于树模型构建可解释性推荐系统
  9. JavaFX键盘事件(及键盘事件无效的原因)
  10. python古诗词生成_唐诗生成器
  11. laravel框架详解
  12. PHP集成环境Visual-AMP
  13. 微信小程序父子组件之间传值
  14. android拼音转汉字,安卓汉字转拼音库 – TinyPinyin
  15. 利用Zeplin从设计图自动生成CSS,提高前端样式开发效率
  16. win10命令提示符怎么打开_win10死机出现蓝屏代码SYSTEM_PTE_MISUSE怎么解决
  17. 阿里巴巴的业务范畴/文化和价值观
  18. 匈牙利算法与python实现
  19. 中南计算机绘图试题,中南大学计算机绘图试题b答案
  20. 用 Python 创建属于自己的网易云音乐

热门文章

  1. OAI 物理层仿真器
  2. C# Setting.settings . 配置用法
  3. 美国名校计算机科学gre要求,没有GRE成绩怎样申请美国名校
  4. linux 卸载docker 离线_Linux 离线安装docker的过程(一键式安装)
  5. Matlab 绘图(一)圆形绘制
  6. Hadoop之FileSystem使用
  7. 夏日必备太阳镜的选购技巧
  8. TCP’s Congestion Control Implementation in Linux Kernel 文献阅读笔记
  9. BZOJ 5049. 【GDOI2017模拟一试4.11】腐女的生日
  10. 深刻理解:带头结点和不带头结点的区别 使用头结点的优势