给定两个日期, start_date和end_date。任务是找到两个日期之间的差异。
例子:
Input: start_date: 2016-06-01 22:45:00 end_date: 2018-09-21 10:44:01Output: 2 years, 3 months, 21 days, 11 hours, 59 minutes, 1 secondsInput: start_date: 2015-05-12 12:37:30 end_date: 2018-04-25 12:45:31Output: 2 years, 11 months, 19 days, 0 hours, 8 minutes, 1 seconds
方法1:采用date_diff()函数找出两个日期之间的差异。
方法2:使用日期时间数学公式来查找两个日期之间的时差。它返回两个指定日期之间的年, 月, 日, 小时, 分钟, 秒。
程序:
<
?php// Declare and define two dates
$date1 = strtotime ( "2016-06-01 22:45:00" );
$date2 = strtotime ( "2018-09-21 10:44:01" );
// Formulate the Difference between two dates
$diff = abs ( $date2 - $date1 );
// To get the year divide the resultant date into
// total seconds in a year (365*60*60*24)
$years = floor ( $diff / (365*60*60*24));
// To get the month, subtract it with years and
// divide the resultant date into
// total seconds in a month (30*60*60*24)
$months = floor (( $diff - $years * 365*60*60*24)
/ (30*60*60*24));
// To get the day, subtract it with years and
// months and divide the resultant date into
// total seconds in a days (60*60*24)
$days = floor (( $diff - $years * 365*60*60*24 -
$months *30*60*60*24)/ (60*60*24));
// To get the hour, subtract it with years, // months &
seconds and divide the resultant
// date into total seconds in a hours (60*60)
$hours = floor (( $diff - $years * 365*60*60*24
- $months *30*60*60*24 - $days *60*60*24)
/ (60*60));
// To get the minutes, subtract it with years, // months, seconds and hours and divide the
// resultant date into total seconds i.e. 60
$minutes = floor (( $diff - $years * 365*60*60*24
- $months *30*60*60*24 - $days *60*60*24
- $hours *60*60)/ 60);
// To get the minutes, subtract it with years, // months, seconds, hours and minutes
$seconds = floor (( $diff - $years * 365*60*60*24
- $months *30*60*60*24 - $days *60*60*24
- $hours *60*60 - $minutes *60));
// Print the result
printf( "%d years, %d months, %d days, %d hours, "
. "%d minutes, %d seconds" , $years , $months , $days , $hours , $minutes , $seconds );
?>
【PHP中如何计算两个日期之间的差异()】输出如下:
2 years, 3 months, 21 days, 11 hours, 59 minutes, 1 seconds
方法3:此方法用于获取两个指定日期之间的总天数。
<
?php// Declare two dates
$start_date = strtotime ( "2018-06-08" );
$end_date = strtotime ( "2018-09-19" );
// Get the difference and divide into
// total no. seconds 60/60/24 to get
// number of days
echo "Difference between two dates: "
. ( $end_date - $start_date )/60/60/24;
?>
输出如下:
Difference between two dates: 103
推荐阅读
- 处理/etc/fstab路径,使用sed命令取出其目录名和基名
- 如何建立一个有信誉的StackOverflow配置文件()
- 如何避免模数乘法溢出()
- 如何使用Python和其他语言为变量赋值()
- 如何在HTML中对齐占位符文本()
- 如何在现有的Pandas DataFrame中添加一行()
- 如何在Google AMP的amp-carousel中添加灯箱效果()
- 如何使用HTML和CSS在文本背景中添加图像()
- 如何在C#中使用指针访问结构体元素