为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕斯709654 2022-12-23 16:10:25
我有一个代码可以在数据库中保存发布日期,但它总是更改为 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");


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号