2016-05-12 2 views
1

ich Datetime-local-Eingabefeld in meinem Controller mit diesem am bevölkern:Laravel und Carbon-Rückkehr falsche Zeit

public function create() 
    { 
     $task = new Task(); 
     $task->start_date = Carbon::now(); 
     $task->due_date = Carbon::now(); 

     return view('tasks.create', compact('task')); 
    } 

und dies meiner Ansicht nach:

{!! Form::input('datetime-local', 'start_date', $task->start_date->format('Y-m-d\TH:m'), ['class' => 'form-control']) !!} 
{!! Form::input('datetime-local', 'due_date', $task->due_date->format('Y-m-d\TH:m'), ['class' => 'form-control']) !!} 

jedoch den Wert der Felder immer ist:

<input class="form-control" name="start_date" type="datetime-local" value="2016-05-12T22:05" id="start_date"> 

Wenn ich die Attribute ein dd($task) in meiner create() Methode tun haben die aktuelle Zeit in.

#attributes: array:2 [▼ 
    "start_date" => Carbon {#186 ▼ 
     +"date": "2016-05-12 22:20:14.000000" 
     +"timezone_type": 3 
     +"timezone": "UTC" 
    } 
    "due_date" => Carbon {#187 ▼ 
     +"date": "2016-05-12 22:20:14.000000" 
     +"timezone_type": 3 
     +"timezone": "UTC" 
    } 
    ] 

Sie versuchen, herauszufinden, warum die Eingabe die falsche Zeit anzeigt, wenn die Attribute die richtige Zeitwert haben.

Antwort

0

Ihr Format ist:

Y-m-d\TH:m 

Was bedeutet:

(Year to 4 digits)-(Month with Leading zeros)-(Day to 2 digits with leading zeros)T(Hours in 24 hour format):(Month with Leading zeros) 

Sie wollen:

Y-m-d\TH:i // 'i' = minutes with leading zeros 

http://php.net/manual/en/function.date.php

+0

Dank für die Anregung, ich kann ich nicht glauben, verpasst das! Nur um dich zu korrigieren (sorry) 'j' ist der Tag des Monats 'ich' ist Minuten. Wenn Sie Ihre Antwort bearbeiten, werde ich sie als korrekt markieren. Danke noch einmal! – showFocus

+0

Ja! Vielen Dank! Ich habe das verstanden, bevor du geantwortet hast. Es ist repariert. – tptcat