我有一个代码可以在数据库中保存发布日期,但它总是更改为 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']以日期格式转换时,它是错误的错误在哪里?
1 回答

临摹微笑
TA贡献1982条经验 获得超2个赞
看起来您的输入名称和数组键不一致(“日期”与“日期”)。
Unix 时间戳相对于 1970 年 1 月 1 日,因此这是时间戳 0 的值。未定义的数组键将导致值为 null(并且可能在日志中出现通知/警告)。strtotime
当第一个参数为 null 时将返回 false,当传递给 null 时将被转换为 0 date
,因此日期为 1970/01/01。
编辑
从您在评论中的附加信息来看,问题是您提供的日期格式无法被strtotime
. 您将需要使用不同的方法来解析您期望的格式。
您可以使用DateTime::createFromFormat
解析特定格式,然后使用DateTime::format
所需格式存储它。例如:
$date=DateTime::createFromFormat("d F Y - H:i", $form["date"]); $data["PUBLISH"]=$date->format("Y/m/d H:i a");
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消