【发布时间】:2021-06-16 06:13:19
【问题描述】:
我目前是 PHP 新手,我被这个问题困住了。我似乎无法从员工时间表中减去 TIME IN
function update_dtr($rs) {
foreach ($rs as $key => $value) {
$db=new Database ();
$db->connect();
//date_default_timezone_set('Asia/Ho_Chi_Minh');
$empShift = $db->select(array('myilogin_46.DATE_TIME_RECORDS'),'SHIFT_START'
,"ID = '".$id."' and R_STATUS = 'A'");
$sched= strtotime($empshift);
$alterin = strtotime($value['alterIN']);
if($sched>$alterin){
$late= strtotime("00:00:00");
}else{
//subtract Alterin by the scedule so i can get late in hours and minutes format
$late = $alterin - $sched;
}
$db->update_imp('myilogin_46.DATE_TIME_RECORDS',array(
'date_in'=>date('Y-m-d',strtotime($value['alterIN']))
,'time_in_info'=>'ALTERED IN'
,'time_out_info'=>'ALTERED OUT'
,'time_in'=>date('H:i',strtotime($value['alterIN']))
,'time_out'=>date('H:i',strtotime($value['alterOUT']))
,'date_out'=>date('Y-m-d',strtotime($value['alterOUT']))
,'late'=>gmdate('H:i',strtotime($late))
),"id = '".$value['dtrID']."' and id_emp = '".$value['empID']."' and R_STATUS = 'A'");
$db->disconnect();
PS:我也尝试过 date_diff 方法,但它对我不起作用。 THis is what my database looks like
【问题讨论】:
-
试过链接里的所有方法,你给的,还是不行。我在控制台中收到此错误。可捕获的致命错误:无法将类 DateInterval 的对象转换为 /var/www/43_alteration/classes/cls.db.php 中的字符串 419
-
您希望在哪一列中有所不同,以哪种格式显示?
-
,'late'=>gmdate('H:i',strtotime($late)) 我在这里调用它。我希望格式为 H:i:s ("00:00:00") 与我的数据库格式相同。
-
因此,根据上图中突出显示的字段的列,结果应该是 00:02:00 这个。对吗?
标签: php