我正在尝试像这样在 MySQL 表中插入一个日期值(使用 Laravel 5.1):
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$data = $request->all();
$data['birthdate'] = date("Y-d-m", strtotime($data['birthdate']));
...
$user->fill($data)->save();
如果我插入一个日期 < 12 的日期,它会工作正常,而如果天 > 12,它将插入 1970-01-01 !
我在用户模型中使用了 Eloquent 修改器,如下所示:
public function getBirthdateAttribute() {
return date('d/m/Y', strtotime($this->attributes['birthdate']));
}
public function setBirthdateAttribute($value) {
$this->attributes['birthdate'] = Carbon::createFromFormat('Y-m-d', $value);
}
请问我的代码怎么了!?
最佳答案
改变这个:
date("Y-d-m", strtotime($data['birthdate']));
到:
date("Y-m-d", strtotime($data['birthdate']));
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-literals.html
你应该像这样的格式dd-mm-yyyy
,如果它像这样dd/mm/yyyy
$date = '22/05/2012';
$date = str_replace('/', '-', $date);
$date = date('Y-m-d', strtotime($date));
关于php - 在 Mysql 数据库中插入日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730699/