加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_梅州站长网 (https://www.0753zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP常用日期时间操作合集

发布时间:2022-09-13 15:42:48 所属栏目:PHP教程 来源:
导读:  需求背景

  PHP程序员在日常开发中经常需要计算各种时间,经常有些比较复杂的,特意整理了以下这些常用的,建议收藏。

  更多详细的操作函数整合了自取https://github.com/xmgb-cj/date
  代码
  需求背景
 
  PHP程序员在日常开发中经常需要计算各种时间,经常有些比较复杂的,特意整理了以下这些常用的,建议收藏。
 
  更多详细的操作函数整合了自取https://github.com/xmgb-cj/date
  代码
 
  1. 获取上个月第一天及最后一天
 
  echo date('Y-m-01', strtotime('-1 month'));
  echo date('Y-m-t', strtotime('-1 month'));
  2. 获取当月第一天及最后一天
 
  $BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
  echo $BeginDate;
  echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
  3. 获取当天年份、月份、日及天数
 
  echo " 本月共有:".date("t")."天";
  echo " 当前年份".date('Y');
  echo " 当前月份".date('m');
  echo " 当前几号".date('d');
  4. 获取本周的第一天和最后一天
 
  //当前日期
  $sdefaultDate = date("Y-m-d");
  //$first =1 表示m每周星期一为开始日期 0表示每周日为开始日期
  $first = 1;
  //获取当前周的第几天 周日是 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"));
  5. 判断当前日期是星期几
 
  $weekarray=array("日","一","二","三","四","五","六");
  echo "星期".$weekarray[date("w")];
  6. 计算两个日期相差的天数
 
 
  /**
   * 求两个日期之间相差的天数
   * (针对1970年1月1日之后,求之前可以采用泰勒公式)
   * @param string $day1
   * @param string $day2
   * @return number
   */
  function diffBetweenTwoDays ($day1, $day2){
    $second1 = strtotime($day1);
    $second2 = strtotime($day2);
    if ($second1 < $second2) {
      $tmp = $second2;
      $second2 = $second1;
      $second1 = $tmp;
    }
    return ($second1 - $second2) / 86400;
  }
  $day1 = "2013-07-27";
  $day2 = "2013-08-04";
  $diff = diffBetweenTwoDays($day1, $day2);
  echo $diff."\n";
  提升
 
  1. 整合了一份更强大的时间操作库,自行下载,在部分社交场景的项目中,例如用户发布了一个动态内容,需要人性化的显示发布时间,比如1分钟前,1小时前,1个月前等人性化的显示,这是可以使用库中的以下函数
 
  $time = new Time();
  $resp = $time->timeDiff('2020-04-30 12:00:00');
  var_dump($resp);
  2. 再如计算两个时间的差,得出相差几天、月、季、年PHP日期,可以使用以下代码得到相差的月份,具体由第二个参数控制。
 
  $date = '2020-01-30';
  $month = floor(abs($time->dateDiff($date, 'M')));
  3. 判断日期 所属 干支 生肖 星座
 
  $time = new Time();
  echo $time->magicInfo('XZ');
  //得到今天的星座
  总结:
 
  开发中这种时间日期操作函数还是非常多的,还有一个更常用的就是判断指定日期是否工作日,这个在网上的接口大部分不可用,个人建议还是自己维护一份节假日数据表,国家每年发布法定节假日时维护一次就可以了。
 

(编辑:云计算网_梅州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!