计算格式为YYYY-MM-DD HH:ii:ss的两个时间,相差多少年、多少月、多少日、多少小时、多少分钟、多少秒?
2017-09-19 10:09
966 查看
<?php function diffDateTime($datetime1,$datetime2){ $preg = "/^\d{4}\-\d{2}\-\d{2}(\s)+\d{2}:\d{2}:\d{2}$/";//验证时间格式是否为YYYY-MM-DD HH:ii:ss if(!preg_match($preg, $datetime1) || !preg_match($preg, $datetime2)) exit('Format Error'); if(strtotime($datetime1) > strtotime($datetime2)){ $tmp = $datetime2; $datetime2 = $datetime1; $datetime1 = $tmp; } list($date1,$time1) = explode(' ',$datetime1); list($date2,$time2) = explode(' ',$datetime2); list($year1,$month1,$day1) = explode('-',$date1); list($year2,$month2,$day2) = explode('-',$date2); if(!checkdate($month1,$day1,$year1) || !checkdate($month2,$day2,$year2)) exit('Invalid Date'); $diff_year = $year2 - $year1; $diff_month = $month2 - $month1; $diff_day = $day2 - $day1; if($diff_day < 0){ $diff_day += (int)date('t',strtotime("-1 month $date2")); $diff_month--; } if($diff_month < 0){ $diff_month += 12; $diff_year--; } //计算时间差 $timediff = abs(strtotime($time2) - strtotime($time1)); //计算小时数 $diff_hour = intval($timediff / 3600); //计算分钟数 $remain = $timediff % 3600; $diff_minute = intval($remain / 60); //计算秒数 $diff_second = $remain % 60; return array( 'diff_year' => $diff_year, 'diff_month' => $diff_month, 'diff_day' => $diff_day, 'diff_hour' => $diff_hour, 'diff_minute' => $diff_minute, 'diff_second' => $diff_second ); } var_dump(diffDateTime('2019-02-27 12:20:15','2017-02-02 12:19:55'));
输出:
array (size=6)
'diff_year' => int 2
'diff_month' => int 0
'diff_day' => int 25
'diff_hour' => int 0
'diff_minute' => int 0
'diff_second' => int 20
相关文章推荐
- 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss
- 获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
- 时间戳转化成时间格式:yyyy-MM--dd HH:mm:ss
- JQuery json 时间格式由Thu Nov 9 20:30:37 UTC+0800 2006 转换成yyyy-MM-dd hh:mm:ss
- 时间格式2016-12-12 12:32:12.0带毫秒转换正常yyyy-MM-dd HH:mm:ss
- java计算两个时间相差(天、小时、分钟、秒)
- 时间格式yyyy-MM-dd HH:mm:ss的记忆口诀
- js获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
- 时间戳转换为"yyyy-MM-dd hh:mm:ss"格式(24小时)
- 比对YYYY-MM-DD HH:MM:SS格式的日期与当前日期的时间间隔
- JavaScript取当前时间,格式为,yyyy-mm-dd hh:mm:ss
- 时间戳转化成时间格式:yyyy-MM--dd HH:mm:ss
- 将时间转换成yyyy-MM-dd HH:mm:ss的格式字符串
- NSDate 实现时间格式刚刚、几分钟前、几小时前、昨天、MM-dd HH:mm:ss
- 关于时间格式yyyy-MM-dd HH:mm:ss具体讲解
- C#将时间格式 yyyy-mm-dd hh:mm:ss转换为yyyyMMddHHmmss
- JS获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS” 可以根据需求修改
- 时间格式:yyyy-MM-dd HH:mm:ss,YYYY-MM-dd hh:mm:ss等,详细解释
- 时间戳转化成时间格式:yyyy-MM--dd HH:mm:ss
- js中date时间转换yyyy-mm-dd hh:MM:ss等格式字符串