从选定的时间减少一定的时间

时间:2013-08-14 07:40:42

标签: php

朋友们,我决定用PostgreSQL作为后端创建一个PHP程序。在这里,我想创建一个页面,显示一些时间表(时间表),用户必须使用单选按钮选择一个选项。我需要将“选定时间 - 15分钟”传递给数据库中的某个字段。我使用的技术如下所示

     $a=$dt[$m].' '.$ftime;
     for($j=1;$j<=$slots;$j++)
    {   
    echo "<td>";
    if($j==1)
    {   
    $a= date("Y-m-d H:i:s", strtotime("$a + 0 minutes"));
    $value= date("Y-m-d^H:i:s", strtotime("$a + 0 minutes"));
    }
    else
    {
    $a= date("Y-m-d H:i:s", strtotime("$a + $intl minutes"));
    $value= date("Y-m-d^H:i:s", strtotime("$a + $intl minutes"));   
    }  
    $b=explode(" ",$a);  
    if(!in_array($a,$res_tm))   
    echo "<input type='radio' name='radio1' value=$value> $b[1]";
    else echo "Reserved";

我使用表单标记在另一个页面中完成了数据库操作。但问题是我想存储正确的值。但是在这里,我得到一个值,它始终是所选值的增量$intl(15分钟)。但我想传递正确的价值。我发现$value的值总是比实际值大$intl分钟,但我无法纠正这一点。 有人请帮助我

1 个答案:

答案 0 :(得分:1)

我认为这是因为“else”部分中的$ intl从2开始而不是1。 每次通过“else”部分时,尝试从中减去1(或15)。

if($j==1)
{   
   // Here you want $intl == 0, which is $j - 1.
   // Actually, you can drop the '+ 0 minutes' altogether
   $a= date("Y-m-d H:i:s", strtotime("$a"));
   $value= date("Y-m-d^H:i:s", strtotime("$a"));
}
else
{
   // I am guessing here, since I don't know the contents of $intl or $j.
   // You probably need either $intl - 1 or $j - 1.
   $intl_adjusted = $intl - 1;
   $a= date("Y-m-d H:i:s", strtotime("$a + $intl_adjusted minutes"));
   $value= date("Y-m-d^H:i:s", strtotime("$a + $intl_adjusted minutes"));   
}