我正在使用PHP系统,它允许客户通过数据库预订他们的预订。
除了一部分外,一切正常。该部分是在会话中未正确设置time()
和date()
。请注意,这不是我原来的作品,而是来自之前的创作者,但他不再为公司工作了。
这是预订脚本的一部分:
if (!isset($_SESSION['mt_reservering']['startdate']) || !$_SESSION['mt_reservering']['startdate'] )
{
$_SESSION['mt_reservering']['startdate'] = time();
}
//handle post
foreach($_POST as $key => $value)
{
if ($key == "startdate")
{
$arr_values = explode("-",$value);
$value = time(0,0,0,$arr_values[1],$arr_values[0],$arr_values[2]);
}
$_SESSION['mt_reservering'][$key] = $value;
输入:
$formulier .= "
<tr>
<td>Vertrekdatum:</td>
<td>
<input type=\"text\" name=\"startdate\" style=\"width:175px;\" value=\"".date("d-m-Y",$_SESSION['mt_reservering']['startdate'])."\">
<script language=\"JavaScript\">
new tcal ({
'formname': 'reservation',
'controlname': 'startdate'
});
</script>
</td>
</tr>";
所以这个问题的大部分原因是它在最后一步重置到今天的日期而不是他们预订的日期。
任何人都知道为什么会这样?
有些图片可以看到:
答案 0 :(得分:1)
前一个编码器试图使用函数mktime()。
time()函数不带参数,并始终返回当前时间戳
mktime()将格式化给定值的时间戳。
答案 1 :(得分:0)
你不能使用时间函数来设置值,因为它只返回当前的unix时间戳。 改为使用DateTime。