【问题标题】:Adding two times from database从数据库中添加两次
【发布时间】:2013-11-29 02:23:39
【问题描述】:

我是 PHP 的新手,我试图尽可能多地解决这种情况,但仍然不知道/不知道正确的答案。

我在数据库中有一个包含 2 列的表,时间数据类型

Lunch     Break
00:01:00  00:00:30

我试图获取数据并添加两次,但我总是得到错误的值。 我有这个代码:

 $time[$x] =$row['break'] + $row['lunch'];
 $totalAux[$x] = $time[$x]; 

输出是:“00:00:00”

我试试这个:

 $time[$x] =strtotime($row['break']) + strtotime($row['lunch']);
 $totalAux[$x] = $time[$x];     

并得到“00:00:00”的输出

最后试了这个:

 $time[$x] =strtotime($row['break']) + strtotime($row['lunch']);
 $totalAux[$x] = date('H:i:s', $time[$x]);

输出为:“09:33:14” 请帮助伙计们。

【问题讨论】:

    标签: php mysql time add


    【解决方案1】:

    您可以使用 MySQL 中的ADDTIME function

    SELECT Lunch, Break, ADDTIME(Lunch, Break) FROM table_name;
    

    sqlfiddle

    【讨论】:

    • 但是如果我想添加 10 列,当我使用 ADDTIME() 时出现参数计数错误
    • 知道了,我只需要在另一个 ADDTIME() 中使用 ADDTIME() :) 谢谢先生 :)
    【解决方案2】:

    您为什么不使用TIMEDIFF()ADDTIME() 函数分别在mysql 中获取差异或添加时间,以便在那里解决,php 只需选择它起来。

    您还需要使用 TIME_FORMAT() 来获取小时、分钟和秒:

    SELECT TIME_FORMAT(ADDTIME(lunch, breaks),'%H:%i:%s') as TimeTotal 
    FROM lunchbreaks;
    
    SELECT TIME_FORMAT(TIMEDIFF(lunch, breaks),'%H:%i:%s') as TimeDifference 
    FROM lunchbreaks;
    

    Demo

    【讨论】:

    • TIMEDIFF() 用于减去 Edper 先生的 2 列,但我需要添加列。请帮忙。
    • @Aljie:我在那个上犯了一个错误。如果要添加时间,可以使用 ADDTIME(),如果要查看两次之间的差异,可以使用 TIMEDIFF()。请参阅上面的更新。
    • 谢谢先生,但是如果我想添加多个具有相同时间数据类型的列怎么办? ADDTIME() 仅适用于 2 列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多