PHP常用函数之格式化时间操作示例


Posted in PHP onOctober 21, 2019

本文实例讲述了PHP常用函数之格式化时间操作。分享给大家供大家参考,具体如下:

/**
 * 格式化时间
 * @param $time 时间戳
 * @return bool|string
 */
function formatTimeToNow($time){
  //获取现在的时间戳
  $nowtime = time();
  if($time>$nowtime){
    return '';
  }else{
    $tc = $nowtime-$time;
    if( $tc >= 864000 ){
      $str = date('Y-m-d H:i',$time);//如果大于10天,则直接显示日期
    }else if( $tc >= 86400){
      $str = floor($tc/86400) . "天前";//如果大于1天
    }else if( $tc >= 3600) {
      $str = floor($tc / 3600) . "小时前";//如果大于1小时
    }else if( $tc >= 60) {
      $str = floor($tc / 60) . "分钟前";//如果大于1分钟
    }else{
      $str = "刚刚";
    }
    return $str;
  }
}
/**
 * 将中文的日期格式化为正常的日期
 * @param $date
 * @return mixed
 */
function formatCnDateToDate($date){
  //把年月替换为-,日替换为空
  $date = str_replace('年','-',$date);
  $date = str_replace('月','-',$date);
  $date = str_replace('日','',$date);
  //避免提交的格式不统一,例如2018-3-2等,标准化
  return date('Y-m-d',strtotime($date));
}
/**
 * 计算自然周期的开始时间戳和结束时间戳(周一到周日,月初到月末)
 * @param int $time_type 1表示自然天,2表示自然周,3表示自然月
 * @param int $prev_num 距离现在的值(前一周传-1,前两周传-2...)
 * @return array|bool
 */
function naturalFormatTime($time_type=1,$prev_num=0){
  $today_start_time = strtotime(date('Y-m-d 00:00:00',time()));//今天0点的时间戳
  if($time_type == 1){
    if($prev_num == 0){
      return array('start_time'=>$today_start_time,'end_time'=>time(),'show_date'=>date('Y年m月d日',time()));
    }else if($prev_num < 0){
      $start_time = $today_start_time - 86400*abs($prev_num);
      $end_time = $start_time + 86399;
      $show_date = date('Y年m月d日',$start_time);
      return array('start_time'=>$start_time,'end_time'=>$end_time,'show_date'=>$show_date);
    }else{
      return false;
    }
  }else if($time_type == 2){
    $today_week = date('w',$today_start_time);
    if($today_week == 0){
      $today_week_start_time = $today_start_time - 86400*6;
    }else{
      $today_week_start_time = $today_start_time - 86400*($today_week-1);
    }
    if($prev_num == 0){
      $show_date = date('Y年m月d日',$today_week_start_time);
      $show_date .= '至' . date('d日',time());
      return array('start_time'=>$today_week_start_time,'end_time'=>time(),'show_date'=>$show_date);
    }else if($prev_num < 0){
      $start_time = $today_week_start_time - 86400*7 * abs($prev_num);
      $end_time = $start_time + (86400*7-1);
      $show_date = date('Y年m月d日',$start_time);
      $show_date .= '至' . date('d日',$end_time);
      return array('start_time'=>$start_time,'end_time'=>$end_time,'show_date'=>$show_date);
    }else{
      return false;
    }
  }else if($time_type == 3){
    if($prev_num == 0){
      $today_day = ltrim(date('d',$today_start_time),0);
      $today_month_start_time = $today_start_time - 86400*($today_day-1);
      $show_date = date('Y年m月d日',$today_month_start_time);
      $show_date .= '至' . date('d日',time());
      return array('start_time'=>$today_month_start_time,'end_time'=>time(),'show_date'=>$show_date);
    }else if($prev_num < 0){
      $start_time = strtotime(date('Y-m-01', strtotime("$prev_num month")));
      $days = date('t',$start_time);
      $end_time = $start_time + 86400 * $days -1;
      $show_date = date('Y年m月d日',$start_time);
      $show_date .= '至' . date('d日',$end_time);
      return array('start_time'=>$start_time,'end_time'=>$end_time,'show_date'=>$show_date);
    }else{
      return false;
    }
  }else{
    return false;
  }
}
/**
 * 计算近一周或近一个月的开始时间戳和结束时间戳
 * @param $type 1表示今天,2表示近一周,3表示近一个月
 * @return array
 */
function nearFormatTime($type){
  $start_time = strtotime(date('Y-m-d 00:00:00'));//今天0点的时间戳
  $end_time = $start_time + 86399;//今天23:59的时间戳
  $res = array('start_time'=>0,'end_time'=>$end_time);
  if($type == 1){
    //今天
    $res['start_time'] = $start_time;
  }else if($type == 2){
    //近一周
    $res['start_time'] = $start_time - 86400*6;//包括今天,共七天
  }else if($type == 3){
    //近一个月
    $res['start_time'] = $start_time - 86400*30;//包括今天,共31天
  }
  return $res;
}
PHP 相关文章推荐
PHP脚本的10个技巧(2)
Oct 09 PHP
PHP通用检测函数集合
Nov 25 PHP
php 常用字符串函数总结
Mar 15 PHP
Snoopy类使用小例子
Apr 15 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
PHP实现批量上传单个文件
Dec 29 PHP
php字符串的替换,分割和连接方法
May 23 PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 #PHP
laravel5 Eloquent 实现事务方式
Oct 21 #PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 #PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 #PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 #PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 #PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 #PHP
You might like
利用static实现表格的颜色隔行显示
2006/10/09 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
layui表格实现代码
2017/05/20 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python 处理文件的几种方式
2019/08/23 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
教师应聘个人求职信
2013/12/10 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript