这里我正在做任务模块,现在我想跟踪时间线,这里我们有两个日期
使用这两个日期我想跟踪他们的时间线,假设在截止日期之前我完成了我的任务意味着我想要显示绿色,我想要显示多少天和多少小时我想要显示,同样假设他是延迟他的时间表意味着我想要显示红色和多少天以及我完成了他想要显示多少小时
我试过但是它工作不正常
date_default_timezone_set('Asia/Kolkata');
$due_on = '2017-12-28 09:00 PM';
$start_ex = explode(" ", $due_on);
$start = $start_ex[0].' '.$start_ex[1];
$completedON ='2017-12-28 09:39 AM';
$datetime1 = date_create($start);
$datetime2 = date_create($completedON);
$interval = date_diff($datetime1, $datetime2);
echo $time_diff= $interval->format('%R%a days %h hours');
更新代码
date_default_timezone_set('Asia/Kolkata');
$compltedOn ='2017-12-28 09:39 PM';//2016-04-17 10:00 AM
$dueDate ='2017-12-28 09:00 PM';//2016-04-17 07:51:30 PM
$datetime1 = date_create($compltedOn);
$datetime2 = date_create($dueDate);
$interval = date_diff($datetime1, $datetime2);
echo $time_diff= $interval->format('%R%a days %h hours %i minuts');//-0 days 0 hours 39 minuts 0 seconds
答案 0 :(得分:0)
两个问题:
您从开始时间剥离PM指标,因此date_create会将其视为早晨日期,然后将其与第二个日期进行比较 - 以分钟为单位返回差异。
您正在使用echo $time_diff= $interval->format('%R%a days %h hours');
所以请将此设为$time_diff= $interval->format('%R%a days %h hours');
echo $time_diff;
修改后的代码:
date_default_timezone_set('Asia/Kolkata');
$compltedOn ='2017-12-28 09:39 PM';//2016-04-17 10:00 AM
$dueDate ='2017-12-28 09:00 PM';//2016-04-17 07:51:30 PM
$datetime1 = date_create($compltedOn);
$datetime2 = date_create($dueDate);
$interval = date_diff($datetime1, $datetime2);
$cls = ($interval->invert == 1 ) ? "red" : "green";
$time_diff= "<span class='{$cls}'>".$interval->format('%R%a days %h hours %i minuts')."<span>";
echo $time_diff;