Home > Article > Backend Development > How to calculate the time difference between two dates in PHP? (code example)
Given two dates, how to calculate the time difference between them? The following article will introduce you to several methods of calculating the time difference between two dates using PHP. I hope it will be helpful to you.
Recommended manual:php complete self-study manual
##Method one:Use the date_diff() function to calculate the time difference
The date_diff() function can return the difference between two DateTime objects<?php header("content-type:text/html;charset=utf-8"); // 创建日期时间对象 $date1 = date_create("2017-06-08"); $date2 = date_create("2018-09-19"); $interval = date_diff($date1, $date2); echo $interval->format('%R%a 天'); ?>Output:
Method 2: Use mathematical formulas to calculate the time difference and then return the total number of days between them.
<?php header("content-type:text/html;charset=utf-8"); // 指定两个日期,转换为 Unix 时间戳 $date1 = strtotime("2017-1-12 22:45:00"); $date2 = strtotime("2018-1-12 10:44:01"); //计算两个日期之间的时间差 $diff= $date1 - $date2 ; $days =abs(round($diff / 86400)); echo "相差: ".$days."天"; ?>Output:
Explanation:
Use strtotime() function to parse two specified times is the Unix timestamp, then subtract the difference to get the difference, then divide it by the total number of seconds 86400 (24 * 60 * 60 = 86400) to get the number of days, and finally output the number of days. What should I do if I want to output hours, minutes, and seconds?Recommended related articles: 1.Based on method 2, below we return the time difference in the format of year, month, day, hour, minute, and second.
php about date and time operations
Related video recommendations: 1.
Dugu Jiujian (4)_PHP video tutorial
Method 3: Use mathematical formulas to calculate the time difference, and then return the time difference between them in the format of year, month, day, hour, minute, and second.
<?php header("content-type:text/html;charset=utf-8"); // 指定两个日期,转换为 Unix 时间戳 $date1 = strtotime("2016-06-01 22:45:00"); $date2 = strtotime("2018-09-21 10:44:01"); //计算两个日期之间的时间差 $diff = abs($date2 - $date1); //转换时间差的格式 $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24) / (60*60)); $minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minutes*60)); printf("相差:%d 年, %d 月, %d 日, %d 小时, %d 分, %d 秒", $years, $months, $days, $hours, $minutes, $seconds); ?>Output:
The above is the detailed content of How to calculate the time difference between two dates in PHP? (code example). For more information, please follow other related articles on the PHP Chinese website!