php - 在 Mysql 数据库中插入日期值

标签 php mysql datetime laravel-5.1 php-carbon

我正在尝试像这样在 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/

相关文章:

php - Kubernetes命名空间Env header

oracle - ORA-01830 : date format picture ends before converting entire input string in TOAD

php - 将数据库字段中的值分配给 html 元素

php - 如果变量为空或未赋值,则将值放入函数中不起作用

php - FFMPEG : Add a fixed size image on a video, 不管视频的宽高(分辨率)

c# - 远程MySQL访问耗时较长

mysql - 一堆子查询的可能替代方案

mysql - 具有内连接优化的 SQL 更新查询

python - 从 pandas Dataframe 中提取月份数据

php - WPDB 查询 - 根据 _meta_key 返回 meta_value