如题,php 中获取两个日期相差的年、月、日、时、分、秒数,网上大多数的方法都是拷贝的 csdn 的一份文章,其实是错误的,代码如下:
$startdate="2022-07-13 08:50:00";//开始时间
$enddate="2022-07-14 12:12:12";//结束时间
echo "开始时间:".$startdate."<br>";
echo "结束时间:".$enddate."<br>";
$date=floor((strtotime($enddate)-strtotime($startdate))/86400);
echo "相差天数:".$date."天<br>";
$hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
echo "相差小时数:".$hour."小时<br>";
$minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
echo"相差分钟数:".$minute."分钟<br>";
$second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
echo"相差秒数:".$second."秒"
实际运行结果,其中分钟数是错误的:
开始时间:2022-07-13 08:50:00
结束时间:2022-07-14 12:12:12
相差天数:1天
相差小时数:3小时
相差分钟数:202分钟
相差秒数:12秒
其实 PHP 官方强烈建议使用 DateTime 类进行任何日期计算,因此本站分享一个基于 DateTime 计算两个日期相差的天数、小时数、分钟数等的准确方法:
use DateTime;
$start_date="2022-07-13 08:50:00";//开始时间
$end_date="2022-07-14 12:12:12";//结束时间
echo "本文由码农资源网分享(www.codesou.cn)<br><br>";
echo "开始时间:".$start_date."<br><br>";
echo "结束时间:".$end_date."<br><br>";
$start_date = new DateTime($start_date);
$since_start = $start_date->diff(new DateTime($end_date));
//echo "相差年数:".$since_start->y.'年<br>';
//echo "相差月数:".$since_start->m.'月<br>';
echo "相差天数:".$since_start->d.'天<br>';
echo "相差小时数:".$since_start->h.'小时<br>';
echo "相差分钟数:".$since_start->i.'分钟<br>';
echo "相差秒数:".$since_start->s.'秒<br>';
实际运行结果:
开始时间:2022-07-13 08:50:00
结束时间:2022-07-14 12:12:12
相差天数:1天
相差小时数:3小时
相差分钟数:22分钟
相差秒数:12秒
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » PHP 获取两个日期相差的天数、小时数、分钟数等的正确方法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » PHP 获取两个日期相差的天数、小时数、分钟数等的正确方法