2016-08-02 10 views
0

In meiner Datenbank werden Geburtsdaten als Y-m-d-Format gespeichert, z. 1965-09-04. Wenn cakePHP abgerufen wird, stammt es aus der Datenbank und konvertiert dieses Datum intern in das d/m/y-Format, sodass 1965-09-04 zum 4.9.65 wird.CakePHP-Datumsformat beim Abrufen aus der Datenbank

Jetzt, wenn ich versuche, dieses Datum in TT/MM/YY-Format (04/09/1965) zu konvertieren, gibt es (04/09/2065).

Kurzgeschichte, ich will nicht CakePHP Datenformate beim Abrufen von DB konvertieren.

+0

Welche CakePHP, 2 oder 3? Soweit ich weiß, ist CakePHP nicht Datum konvertieren. Hast du etwas vorSpeichern in deinem Modell? – giuseppe

+0

Sein cakePHP 3. Nein, das Datum wird korrekt in der DB gespeichert, so dass es nicht vorher gespeichert werden kann. Es kommt in der Ansicht im falschen Format. – Sourabh

Antwort

1

Die Antwort gefunden. Das Datum wurde tatsächlich formatiert, während Daten vom Controller zur Ansicht gingen. Das Standard-Datumsformat von CakePHP wurde mithilfe der Bootstrap-Datei geändert. Hinzugefügt dies in der Datei:

Cake\I18n\Date::setToStringFormat('YYYY-MM-dd'); 
Cake\I18n\FrozenDate::setToStringFormat('YYYY-MM-dd'); 

\Cake\Database\Type::build('date') 
    ->useImmutable() 
    ->useLocaleParser() 
    ->setLocaleFormat('YYYY-MM-dd'); 

Referenz: Cakephp 3.2 change default date format

0

einfach, wenn Sie Datum wollen Format ändern dann nach cakephp Regel können Sie wie folgt verwenden. Ändern Sie zuerst den Felddatentyp int in der Datenbank. in dem gegebenen modalen verwenden diese Funktionen.

public function beforeSave(){ 

$this->data['TableName']['FieldName'] = time(); 
} 

public function afterFind($results, $primary = false) { 
foreach ($results as $key => $val) { 
     if (isset($val['TableName']['FieldName'])) { 
      $results[$key]['TableName']['FieldName'] = $this->dateFormatAfterFind(
       $val['TableName']['FieldName'] 
      ); 
     } 


    } 
    return $results; 
} 

public function dateFormatAfterFind($dateString) { 

    return date("Y-m-d H:m",$dateString); 
} 

Ich hoffe, dass dies für Sie

Verwandte Themen