strtotime("/>

文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP计算两个日期相隔多少年,多少月,多少天,和总天数

2023-09-08 19:53

关注

1.解决PHP如何判断两个日期之间相距的天数,并可换算为月、年。

DiffDate("2021-01-06","2023-06-16");// 计算两个日期相差 年 月 日 function DiffDate($date1, $date2) {   if (strtotime($date1) > strtotime($date2)) {     $ymd = $date2;     $date2 = $date1;     $date1 = $ymd;   }   list($y1, $m1, $d1) = explode('-', $date1);   list($y2, $m2, $d2) = explode('-', $date2);   $y = $m = $d = $_m = 0;   $math = ($y2 - $y1) * 12 + $m2 - $m1; //相差总月数  $y = round($math / 12);  //相差年数  $m = intval($math % 12);  //相差月数  $mm = $math; //相差总月数  $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400;   if ($d < 0) {     $m -= 1;     $d += date('j', mktime(0, 0, 0, $m2, 0, $y2));   }   $m < 0 && $y -= 1;   return array($y, $m, $d,$mm); } 

2. 使用strtotime()后的数值直接相减,计算相差总天数 小时 秒 计算

$one = strtotime('2011-12-08 07:02:40');//开始时间 时间戳$tow = strtotime('2011-12-25 00:00:00');//结束时间 时间戳$cle = $tow - $one; //得出时间戳差值$d = floor($cle/3600/24);$h = floor(($cle%(3600*24))/3600);  //%取余$m = floor(($cle%(3600*24))%3600/60);$s = floor(($cle%(3600*24))%60);echo "两个时间相差 $d 天 $h 小时 $m 分 $s 秒"

3.计算两个日期相隔多少年,多少月,多少天 ,使用php类库

function diffDate($date1,$date2){    $datetime1 = new \DateTime($date1);    $datetime2 = new \DateTime($date2);    $interval = $datetime1->diff($datetime2);    $time['y']         = $interval->format('%Y');    $time['m']         = $interval->format('%m');    $time['d']         = $interval->format('%d');    $time['h']         = $interval->format('%H');    $time['i']         = $interval->format('%i');    $time['s']         = $interval->format('%s');    $time['a']         = $interval->format('%a');    // 两个时间相差总天数    return $time;}  # 使用实例$sss = diffDate('2020-01-21 12:30:30', '2023-06-18 15:00:00');print_r($sss);

4.方法3

        function diffDate($date1,$date2){           $datestart= date('Y-m-d',strtotime($date1));          if(strtotime($datestart)>strtotime($date2)){               $tmp=$date2;               $date2=$datestart;              $datestart=$tmp;           }          list($Y1,$m1,$d1)=explode('-',$datestart);          list($Y2,$m2,$d2)=explode('-',$date2);          $Y=$Y2-$Y1;          $m=$m2-$m1;          $d=$d2-$d1;          if($d<0){              $d+=(int)date('t',strtotime("-1 month $date2"));              $m--;          }          if($m<0){              $m+=12;              $y--;          }          if($Y == 0){             return $m.'个月'.$d.'天';         }elseif($Y == 0 && $m == 0){             return $d.'天';         }else{             return $Y.'年'.$m.'个月'.$d.'天';         }     }   $catdata="2002-09-28"; //计算时间 echo diffDate($catdata,date('Y-m-d',time()));

来源地址:https://blog.csdn.net/qq_32450471/article/details/131277529

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯