【问题标题】:Date not being set in session日期未在会话中设置
【发布时间】:2014-01-21 07:23:06
【问题描述】:

我正在开发一个 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>";

所以这个问题的大部分原因是它在最后一步一直重置到今天的日期,而不是他们预订的日期。

有人知道为什么会这样吗?

一些图片看看吧:

【问题讨论】:

  • 您是否在设置会话之前添加了session_start();
  • 您知道,您知道如何接受预订,只是不知道如何保留预订。这确实是保留中最重要的部分:控股。任何人都可以拿走它们。
  • @KrishR 是的,它在顶部。

标签: php html session date time


【解决方案1】:

之前的编码器尝试使用函数 mktime()。
time() 函数不接受任何参数并始终返回当前时间戳。
mktime() 将根据给定值格式化时间戳。

【讨论】:

    【解决方案2】:

    你不能使用时间函数来设置值,因为它只返回当前的 unix 时间戳。 请改用 DateTime。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2019-12-29
      相关资源
      最近更新 更多