2012-08-15 91 views
-1

我有一个代码,我有2个texboxes和一个按钮,它根据输入添加这些文本框的时间值。PHP添加时间

这里是我的简单的代码:

<?php 

echo "<form method=post><input type=text name=etd>"; 
echo "<input type=text name=btime>"; 
echo "<input type=submit name=sub value=submit></form>"; 
if(isset($_POST['sub'])) 
{ 

     $etime = $_POST['etd']; 
     $btym = $_POST['btime']; 
     $time = strtotime("$etime"); 
     $tym = strtotime("btym"); 
     $etym = strtotime("+$btym hours", $time); 
     $eta = date('H:i:s', $etym); 

echo "$eta"; 
} 
?> 

但是这工作,当我输入12:00和00:30(意思是我要增加30分钟至12:00),它输出11:30这应该是12:30。我究竟做错了什么?提前致谢。

+0

这可能不会解决您的特定问题,但所有的html属性值应该用引号括起来。例如。 '' – 2012-08-15 02:40:45

+0

我使用echo“”;所以如果我在里面添加双引号,我会得到一个错误。 :)) – xjshiya 2012-08-16 02:00:10

+0

然后在它内部使用单引号或者用echo代替。 – 2012-08-16 02:04:47

回答

0

谢谢你的回复! :)))这是我的第一篇文章,我很高兴你们回答了! :)))通过使用mysql addtime()和timediff()函数得到它的工作。没有我将我的头撞在桌子上,它很容易工作。无论如何感谢回复!从现在开始我会一直在你的手中,因为我想我会发布很多问题。^_^

2

不应该这样:

$tym = strtotime("btym"); 

是这样的:

$tym = strtotime("$btym"); 

+0

代码中永远不会使用'$ tym' - 这不会改变任何东西。 – nickb 2012-08-15 02:42:38

+0

这是没有意义的,因为'$ btwm'在'$ etym = strtotime(“+ $ btym hours”,$ time);'中,并且在字符串''中有一个UNIX时间戳是没有意义的' + {SOMETHING}小时“。 – nickb 2012-08-15 02:45:27

1

这应该工作。虽然,如果您想使用30分钟,则btime的值应为0.5,而不是0:30(因为strtotime()呼叫中的参考时间为几小时)。

正如评论者所建议的,所有的属性都应该用引号括起来。

<?php 

echo '<form method=post><input type="text" name="etd">'; 
echo '<input type="text" name="btime">'; 
echo '<input type="submit" name="sub" value="submit"></form>'; 
if(isset($_POST['sub'])) 
{ 
    $eta = date('H:i:s', strtotime($_POST['etd'] . ' +' . $_POST['btime'] . ' hours')); 
    echo "$eta"; 
} 
?>