1

I researched everywhere but could not find the solution,
In the database, I am using from_date field as date(2018-07-07) type But when I find the data then it auto converts in from_date to 'Cake\I18n\Date Object'

[from_date] => Cake\I18n\Date Object
        (
            [time] => 2018-07-07T00:00:00+00:00
            [timezone] => UTC
            [fixedNowTime] => 
        )

I what this as

[from_date] => '2018-07-07'

I know we can covert this by

$obj->from_date->format('Y-M-D');

but the data is coming in an array of 10000 loops, this is not a good idea to convert in the loop. I also tried this in bootstrap.php

Type::build('date')->useLocaleParser()->setLocaleFormat('y-m-d');

but this is also not working.

Please help

Akshay Sharma
  • 1,042
  • 1
  • 8
  • 21

1 Answers1

2

in your bootstrap.php you can set the default format you want when converting Date and FrozenDate to string in Json

see the manual here and the api here

note that you have to use string patterns described here and not the patterns you usually use with date()

so your code should be

\Cake\I18n\FrozenDate::setJsonEncodeFormat('yyyy-MM-dd'); 
\Cake\I18n\Date::setJsonEncodeFormat('yyyy-MM-dd'); 
arilia
  • 9,373
  • 2
  • 20
  • 44
  • You'd probably want to apply this on `\Cake\I18n\Date`/`\Cake\I18n\FrozenDate` instead. Also use `yyyy`, as `YYYY` represents the week-numbering year, which isn't always the same as the calendar year. – ndm Jul 04 '18 at 10:12
  • i tried this \Cake\I18n\Date::setJsonEncodeFormat('yyyy-MM-dd'); now working, – Akshay Sharma Jul 04 '18 at 10:16