我有这个代码来减去两个日期,并在几分钟内得到它们之间的差异:
date_default_timezone_set('Asia/Istanbul');
$date1 = '2014-07-01 09:07:25';
$date1 = date_create($date1);
$current_pc_date = date('Y-m-d H:i:s');
$current_pc_date = date_create($current_pc_date);
$diff = date_diff($current_pc_date,$date1);
$minutes_diff = $diff->format("%R%i");
echo $minutes_diff;
if($minutes_diff<5 && $minutes_diff>0)
{
echo 'yes';
}
else
{
echo 'no';
}
我想减去日期并在几分钟内得到结果,但在这里它减去了两个日期中的分钟部分,所以如果我改变了$date
的小时部分,它在从...减去它时仍会给出相同的结果其他日期例如:
2014-07-01 02:25:48
2014-07-01 02:23:48
会产生2 minutes
如果我更改了小时部分,它仍会给出相同的结果:
2014-07-01 03:25:48
2014-07-01 02:23:48
会产生2 minutes
我希望在第二个示例中得到结果,例如62 minutes
答案 0 :(得分:0)
您可以尝试:
function timeDiff($start_date,$end_date="now"){
$time_diff = (new Datetime($start_date))->diff(new Datetime($end_date));
$time_diff_minute = $time_diff->days * 24 * 60;
$time_diff_minute += $time_diff->h * 60;
$time_diff_minute += $time_diff->i;
return $time_diff_minute;
}
timeDiff('2014-07-01 03:25:48', '2014-07-01 02:23:48'); // 62
答案 1 :(得分:0)
您可以将时间转换为秒,然后减去,然后将差异转换为分钟:
$t1 = '2014-07-01 03:25:48';
$t2 = '2014-07-01 02:23:48';
$minutes_diff = abs(strtotime($t1) - strtotime($t2)) / 60;
echo $minutes_diff; //62
参考文献:
strtotime()将日期转换为时间戳(自1970年1月1日起的秒数)
abs()获取差异的绝对值(如果$t2
大于$t1
)