 |
ต้องการเช็คเวลาเข้างานว่าสายหรือไม่ ถ้าสาย สายกี่นาที |
|
 |
|
|
 |
 |
|

นี่คือตารางที่จะใช้เช็คเวลาคะ
time_in ในตาราง employee คือ เวลาที่เข้างานของพนักงานคะ
time_action ในตาราง time_history คือ เวลาที่พนักงานลงเวลาเข้าทำงานคะ
รบกวนผู้รู้ช่วยหน่อยนะคะ
|
 |
 |
 |
 |
Date :
2015-11-19 22:21:54 |
By :
kk_kukkik |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
time_history อยากให้เช็คง่ายๆ ก็แยก field วันที่กับ เวลาออกจากกัน จะทำให้เช็คและแยกวันที่ได้ง่ายขึ้น
|
 |
 |
 |
 |
Date :
2015-11-19 22:43:09 |
By :
progamer2000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ตาราง history แยกวันที่กับเวลาออกจากกันแล้วคะ แล้วยังไงต่อคะ
|
 |
 |
 |
 |
Date :
2015-11-20 10:18:44 |
By :
kk_kukkik |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2015-11-20 10:21:41 |
By :
kk_kukkik |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กำลังทำแบบนี้อยู่พอดีเลยคะ แล้วทำยังไงต่ออะคะ  
ช่วยแนะนำหน่อยนะคะ ว่าควรเป็นโค้ดแบบไหน   
|
 |
 |
 |
 |
Date :
2015-11-20 14:41:40 |
By :
jkchilla02 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เวลา ที่ใช้เช็ค ดึงข้อมูลมาจาก DB
โค้ดจะประมาณไหนอะคะ หรือ จะปรับเปลี่ยนจากโค้ดที่แนะนำมาอย่างไรคะ
เวลาเช็ค แล้วให้ขึ้นด้วยว่า สาย ไม่สาย อะคะ
|
 |
 |
 |
 |
Date :
2015-11-20 14:51:12 |
By :
jkchilla02 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโค๊ดที่เขียนแสดงรายการไว้แล้วหน่อยครับ เดี๋ยวจะดูให้ว่าต้องแก้ส่วนไหนยังไงบ้าง?
|
 |
 |
 |
 |
Date :
2015-11-20 16:26:55 |
By :
{Cyberman} |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?php
function TimeDiff($strTime1,$strTime2)
{
return (strtotime($strTime2) - strtotime($strTime1))/ ( 60 * 60 ); // 1 Hour = 60*60
}
echo "สาย ".TimeDiff("00:00","19:00")." นาที"."<br>";
?>
|
 |
 |
 |
 |
Date :
2015-11-22 19:15:02 |
By :
kk_kukkik |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมชอบที่จะใช้ type datetime รวมวันที่กับเวลา อยู่ในฟีลด์เดียวกัน
stamp_check type datetime
Code (SQL)
select
tb1.em_id, tb1.stamp_check st, tb2.stamp_check en,
((@st:=unix_timestamp(tb2.stamp_check)) - (@en:=unix_timestamp(tb1.stamp_check))) timework,
(@late:=(@st - (@fixin:=unix_timestamp(concat(curdate(),' 08:00'))))) as latein,
((@fixout:=unix_timestamp(concat(curdate(),' 17:00')))) as beforeout,
(@en - @fixout - if(@late>0, @late, 0)) as overtime
from table as tb1, table as tb2
where tb1.em_id=tb2.em_id
and date(tb1.stamp_check) = date(tb2.stamp_check)
and tb1.action='in' and tb2.action='out'
and date(tb1.stamp_check)=curdate()
ปล. timework, latein, beforeout, overtime เป็นวินาที
ถ้าเอาไปใช้ก็แปลงเป็นชั่วโมงเองนะครับ
เวลา overtime หักเวลาสายด้วย อันนี้แล้วแต่นโยบาย
หมายเหตุ: ไม่ได้ทดสอบ โมฯ จากการ มโนเอาเอง 5555
|
 |
 |
 |
 |
Date :
2015-11-22 20:44:18 |
By :
NewbiePHP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค้ดนี้มันจะเอาไปใช้ยังไงหรอคะ แล้วไว้ส่วนไหน
|
 |
 |
 |
 |
Date :
2015-11-23 10:41:12 |
By :
kk_kukkik |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|