PHP中怎样实现计算日期的时间差,代码是什么
Admin 2022-08-17 群英技术资讯 1013 次浏览
本篇内容介绍了“PHP中怎样实现计算日期的时间差,代码是什么”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年、月、日。
方法一:
/**
+----------------------------------------------------------
* 功能:计算两个日期相差 年 月 日
+----------------------------------------------------------
* @param date $date1 起始日期
* @param date $date2 截止日期日期
+----------------------------------------------------------
* @return array
+----------------------------------------------------------
*/
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);
$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);
}
?>
方法二:
通过DateTime下的diff方法
方法三:
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.'天'; } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如何用PHP实现抽奖功能?一般商家在搞活动时,我们总能看到各种抽奖,这些抽奖功能是怎样做的呢?下面就分享一个使用PHP写的抽奖功能实例,感兴趣的朋友就继续往下看吧。
卸载swoole扩展的方法:1、在php.ini中删除extension=swoole.so。2、切换到PHP安装目录下的bin,然后使用“./pecl uninstall swoole”命令卸载swoole扩展。
本身也是一个迭代器,当被实例化时,又需要被传递到另一个迭代器内部保存,即内部迭代InnerIterator。可通过继承IteratorIterator实现对原有迭代器功能的升级。
最近也是在复习之前学过的内容,感觉对PHP反序列化的理解更加深了,所以在此总结一下,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
6.0中间件分为系统中间件和应用中间件,本文就详细的介绍一下Thinkphp6.0中间件的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008