In meiner CakePHP bootstrap.php erwartete ich habe folgendes:CakePHP setJsonEncodeFormat funktioniert nicht als
use Cake\I18n\Date;
use Cake\I18n\FrozenDate;
use Cake\I18n\FrozenTime;
use Cake\I18n\Time;
Time::setJsonEncodeFormat('yyyy-MM-dd HH:mm:ss');
FrozenTime::setJsonEncodeFormat('yyyy-MM-dd HH:mm:ss');
Date::setJsonEncodeFormat('yyyy-MM-dd HH:mm:ss');
FrozenDate::setJsonEncodeFormat('yyyy-MM-dd HH:mm:ss');
Wenn in einer API-Methode kann ich folgendes:
use Cake\I18n\Time;
$time = new Time();
$this->set([
'time' => $time,
'_serialize' => ['time']
]);
Das Ergebnis ist so etwas wie dieses :
{
"time": "2017-05-16 11.55.13"
}
Beachten Sie die falsche Zeitformat. Aus irgendeinem Grund ändert CakePHP/PHP 7/Linux die :
in eine .
. Unter Windows funktioniert es gut.
CakePHP version =>3.4.6
(obwohl dieses Problem gab es eine lange Zeit)
PHP Version =>7.0.15-0ubuntu0.16.04.4
Dies kann Ihnen helfen. https://book.cakephp.org/3.0/en/core-libraries/time.html – vpdeva
Gibt es etwas, das ich vermisse? Ich habe getan, was diese Seite vorschlägt, um die json Ausgabe zu ändern, aber es funktioniert nicht ... – DBnR
Was ist Ihre ICU Version ('\ INTL_ICU_VERSION')? Stellen Sie sicher, dass Sie mindestens 56.1 verwenden – ndm