我有2个日期时间,我想用分钟来计算差异:
$date_reservation=strtotime($_POST['date_reservation']);;
$dt = new DateTime();
$date_annulation = strtotime($dt->format('Y-m-d H:i:s'));
$attente = (round(abs($date_annulation - $date_reservation)/60)%60);
它只需要分钟而不是小时。
我已经尝试过这个功能(来自php文档)
$interval = $date_annulation->diff($date_reservation);
$years = $interval->format('%y');
$months = $interval->format('%m');
$days = $interval->format('%d');
但它没有用(错误500)
答案 0 :(得分:0)
如果您了解使用此方法可能存在的不准确之处,那么可以只比较Unix时间戳:
$date_reservation = strtotime('2016-05-20 13:30');
$date_annulation = strtotime('now');
$diff_minutes = round(abs($date_annulation - $date_reservation)/60, 0);
您的代码中唯一的问题是,mod 60
您的会议记录(%60
)。这当然只给你整整几个小时的分钟。
请注意,strtotime使用运行此代码的计算机上设置的时区来解释日期时间字符串。您可以使用date_default_timezone_set()
设置代码。
请参阅ideone.com上的示例。
答案 1 :(得分:0)
您的问题是 $ date_annulation 不是DateTime对象。使用strtotime保持简单
<?php
$date_reservation = strtotime($_POST['date_reservation']);
$date_annulation = strtotime('now');
$diff_minutes = ($date_annulation - $date_reservation)/60;
echo $diff_minutes;
答案 2 :(得分:0)
500 Internal Server Error
的回复表示您的PHP代码存在问题。检查服务器日志文件(Apache的error_log
,PHP的php_errors.log
)以找出确切的位置(文件和行)和原因。
与此同时,您从文档中复制的代码不起作用,因为您尝试在数字上调用DateTime
类的方法(strtotime()
返回的值。它没有'这样做。
但是,如果您使用DateTime
(及相关)对象,它确实有效:
$date_reservation = new DateTime($_POST['date_reservation']);
$date_annulation = new DateTime('now');
$interval = $date_annulation->diff($date_reservation);
$years = $interval->format('%y');
$months = $interval->format('%m');
$days = $interval->format('%d');
答案 3 :(得分:-1)
我给你时差代码
<?php
//$datetime1=strtotime('Y-m-d','time to which difference obtained');
$current_time =strtotime(date("Y-m-d H:i:s"));
//$checkTimeEnd = strtotime('time to which difference obtained');
$checkTimeStart = strtotime('time to which difference obtained');
//echo $current_time;
$all = round((($current_time - $checkTimeStart) / 60),2);
//echo floor($all/(60*60*24));
$test = round($all/60,2);
$d = floor ($all / 1440);
$h = floor (($all - $d * 1440) / 60);
$m = $all - ($d * 1440) - ($h * 60);
?>
打印$ d表示日期$ h表示小时$ m表示分钟