2013-11-16 3 views
7

Я хочу вставить дату в таблицу клиентов, следующую схему моего db, я хочу вставить их в поля start_day и end_day.laravel-4 как изменить формат даты

У меня есть ниже в валидациях в ClientController.php

Если вставить иностранный date_format, кроме одной, определенные ниже я бросил ошибку, но если я вставить правильный он возвращается к 0000-00-00. Но если я сменил поле type на text, например, вставляется date_format.

$rules = array(
     'project_name'  => 'required', 
     'project_brief'  => 'required', 
     'start_day' => array('required', 'date_format:"m-d-Y"'), 
     'end_day' => array('required', 'date_format:"m-d-Y"') 
    ); 

Я не уверен, где проблема, если честно. Я даже попытался преобразовать время, сделанное ниже:

$start_day_old = Input::get('start_day'); 
$start_day = date("d-m-Y", strtotime($start_day_old)); 
$project = new Project; 
$project->start_day = $start_day 
$project->save(); 

Однако результаты были одинаков. Кто-нибудь знает, как я могу исправить эту проблему?

Clients DB Schema

ответ

16

Вы не можете вставить дату отформатированный в dd-mm-yyyy в date поле mysql «s, это должно быть yyyy-mm-dd, так что в ваш код здесь

$start_day = date("d-m-Y", strtotime($start_day_old)); 

Изменить его

$start_day = date("Y-m-d", strtotime($start_day_old)); 

Итак, если дата 15-10-2010, то это станет 2010-10-15 a nd это действительная дата для поля date в базе данных mysql.

+1

ahh ok Я вижу, так скажу, когда я печатаю эти данные из базы данных, я могу использовать эту '$ start_day = date (" dmY ", strtotime ($ start_day_old));' для преобразования в формат, который я хочу увидеть его? – 001221

+0

@gutigrewal, Да, именно вы можете преобразовать его в ваш выбор формата. –

+0

спасибо! закроет этот вопрос, тогда – 001221

Смежные вопросы