$updateLog = "UPDATE `tablename`
SET `TotalTimeLoggedIn`= (
SELECT TIMEDIFF( `LoggedOut` , `LoggedIn` ) )
WHERE id = '$id'";
我的登录值已经存储,在开始上述查询时注销的值也是如此
DateLoggedIn 2016-06-06
LoggedIn 12:50:38
DateLogged Out 2016-06-06
LoggedOut 04:36:57
TotalTimeLoggedIn -08:13:41
它适用于 11:20AM
到 11:50AM
但不适用于 11:20AM
到 12:15 PM
我也得到负值
最佳答案
TIMEDIFF( `LoggedOut`,`LoggedIn` )
,TIMEDIFF()
返回 04:36:57 − 12:50:38 表示为时间值。等于 -08:13:41。
您的登录时间是 2016-06-06 12:50:38,注销时间是 2016-06-06 04:36:57。似乎登录是在注销后完成的。(当天凌晨 4 点 36 分注销,中午 12 点 50 分登录)。根据 24 小时制,这看起来不正确。
如果您仍然认为它是中午 12 点和下午 4 点之间的区别,请尝试这样的方法,
IF(TIMEDIFF(`LoggedOut`,`LoggedIn`)<0,
ADDTIME(TIMEDIFF(`LoggedOut`,`LoggedIn`),12:00:00),
TIMEDIFF(`LoggedOut`,`LoggedIn`)
)
关于php - php在特定时间间隔获得负值的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756731/