猿问

始终将日期时间保存到 DB codeigniter 1970

我有一个代码可以在数据库中保存发布日期,但它总是更改为 1970/01/01 07:00 am 我使用 codeigniter 框架,这是我的视图代码


            <div class="form-group">

                <label class="control-label col-md-2">Publish Date</label>

                <div class="col-md-10">

                    <div class="input-group date form_datetime bs-datetime" data-date-format="yyyy-mm-dd HH:ii">

                        <input type="text" name="form[date]" class="form-control" readonly="">

                        <span class="input-group-addon">

                            <button class="btn default date-reset" type="button">

                                <i class="fa fa-times"></i>

                            </button>

                        </span>

                        <span class="input-group-addon">

                            <button class="btn default date-set" type="button">

                                <i class="fa fa-calendar"></i>

                            </button>

                        </span>

                    </div>

                </div>

            </div>

这是我的控制器


$form = $this->input->post('form');

$data['PUBLISH'] = date('Y/m/d H:i a', strtotime($form['date']));

当我打印时$form['date'],结果是正常的,但是当我$form['date']以日期格式转换时,它是错误的错误在哪里?


慕斯709654
浏览 115回答 1
1回答

临摹微笑

看起来您的输入名称和数组键不一致(“日期”与“日期”)。Unix 时间戳相对于 1970 年 1 月 1 日,因此这是时间戳 0 的值。未定义的数组键将导致值为 null(并且可能在日志中出现通知/警告)。strtotime当第一个参数为 null 时将返回 false,当传递给 null 时将被转换为 0&nbsp;date,因此日期为 1970/01/01。编辑从您在评论中的附加信息来看,问题是您提供的日期格式无法被strtotime.&nbsp;您将需要使用不同的方法来解析您期望的格式。您可以使用DateTime::createFromFormat解析特定格式,然后使用DateTime::format所需格式存储它。例如:$date=DateTime::createFromFormat("d&nbsp;F&nbsp;Y&nbsp;-&nbsp;H:i",&nbsp;$form["date"]); $data["PUBLISH"]=$date->format("Y/m/d&nbsp;H:i&nbsp;a");
随时随地看视频慕课网APP
我要回答