日期和时差与色差

问题描述 投票:0回答:1

这里我正在做任务模块,现在我想跟踪时间线,这里我们有两个日期

  1. 任务截止日期(2017-12-28 09:00 PM)
  2. 任务完成时间(2017-12-28 09:39 AM)

使用这两个日期我想跟踪他们的时间线,假设在截止日期之前我完成了我的任务意味着我想要显示绿色,我想要显示多少天和多少小时我想要显示,同样假设他延迟了他的时间线意味着我想要显示红色,我要完成他想要显示的天数和小时数

我试过但它工作不正常

    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
php css3 datetime php-5.6
1个回答
0
投票

两个问题:

  1. 您从开始时间剥离PM指标,因此date_create会将其视为早晨日期,然后将其与第二个日期进行比较 - 以分钟为单位返回差异。
  2. 你正在使用echo $time_diff= $interval->format('%R%a days %h hours');所以chngage这对$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;
© www.soinside.com 2019 - 2024. All rights reserved.