Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 与添加2个时间值混淆_Php_Mysql_Time - Fatal编程技术网

Php 与添加2个时间值混淆

Php 与添加2个时间值混淆,php,mysql,time,Php,Mysql,Time,基本上,这整段时间都让我很沮丧,我对编程还不熟悉,所以如果我问了一个愚蠢的问题,我会道歉 我的数据库中存储了一个MySQL time()。我想将此时间添加到当前时间,以便建立目标时间 $duration为06:00:00。(MySQL时间) $length=strottime($duration); $timestart=time(); $target=$length+time(); //只是为了检查我得到的值是否正确。 回声“持续时间:“.date('G:i:s',$length)。”; 回显

基本上,这整段时间都让我很沮丧,我对编程还不熟悉,所以如果我问了一个愚蠢的问题,我会道歉

我的数据库中存储了一个MySQL time()。我想将此时间添加到当前时间,以便建立目标时间

$duration为06:00:00。(MySQL时间)

$length=strottime($duration);
$timestart=time();
$target=$length+time();
//只是为了检查我得到的值是否正确。
回声“
持续时间:“.date('G:i:s',$length)。”
; 回显“当前时间:”.date('G:i:s',$timestart)。“
”; 回显“目标时间:”.date('G:i:s',$target)。“
”;
目前我得到了这个(不是增加6小时):

持续时间:6:00:00
当前时间:15:51:44
目标时间:19:51:44

谁能给我解释一下吗


非常感谢,

我对mySql不太熟悉,但也许你可以试试

$target = strtotime($length) + time();

strotime
将其转换为unix时间戳。它不代表六个小时。今天是早上6点。您应该使用秒:

$duration = '06:00:00';
$duration_array = explode(':', $duration);

$length = ((int)$duration_array[0] * 3600) + ((int)$duration_array[1] * 60) + (int)$duration_array[2];
$target = $length + time();

Strotime正在里面传播一个日期,比如“今天下午6点”,而不是你想要的6个小时。最简单的方法就是跑步

time() + (6 * 3600);

其中6是小时,3600是每小时的秒数。

如何将MySQL时间($duration)转换为秒?这应该可以。。。获取持续时间字符串的部分并将其转换为秒。这不应该是$duration_array[0]等吗?非常感谢!太棒了!我想问的问题是,为什么我这样做:
echo“
持续时间:“.date('G:I:s',$length)。”
结果是07:00:00吗?而不是06:00:00。再次感谢!因为date还需要一个unix时间戳。如果这样使用,
$length
表示自1970年1月1日UTC 00:00:00以来的秒数。根据您的服务器设置,任何时间都可以显示。但我需要将MySQL时间转换为一种格式,以便添加它。我该怎么做?
time() + (6 * 3600);