Here's a pastebin <http://pastebin.com/E65nFXKx> (paid for it, might as 
well use it).

It occurred to me there was something i hadn't tried. i've been using an 
accessor function in the Entity to format the field to m/d/Y for screen. 
Without it, i get the time (12:00 AM), and the date digits don't have 
leading 0's. So the accessor was helping solve that. i commented that 
function and the setter works. The date goes into the SQL statement the way 
it's expected to (also without the extra format() call, just a Time object).

i've also tried commenting the setter, but end up with the original POST 
string in my UPDATE statement. So i need the setter. 

But i feel i need a getter to format it the way i want for output. i've 
been using getters to provide the individual formats i need, which feels 
like function pollution. i guess i could just use the setter to make a Time 
object & when i access the field, call ->format() on it with the format i 
need...

Suggestions for a more clever/elegant approach?

Thanks for the help.
-joe


On Monday, 11 May 2015 03:42:42 UTC-4, José Lorenzo wrote:
>
> This line means that you are storing in the entity an string, why do you 
> that? Also, how are you saving the data, can you use gist to show all your 
> code?
>
> return $this->_properties['ready_date']->format('Y-m-d');
>
> On Monday, May 11, 2015 at 7:18:50 AM UTC+2, Joe T. wrote:
>>
>> i found this topic here and on Stack Overflow: 
>> https://stackoverflow.com/questions/29336852/how-to-format-date-fields-before-save-in-cakephp-3
>> The hash on the linked Doc page is no longer valid.
>>
>> Like the original post, i don't want to use the default select-based date 
>> inputs. i'm formatting my date in US format for output ('m/d/Y') and using 
>> the 'mdy' Validator. i've also written a mutator in the Entity to convert 
>> the date string to a Time object:
>> protected function _setReadyDate($readyDate)
>> {
>>     $this->_properties['ready_date'] = new Time($readyDate);
>>     return $this->_properties['ready_date']->format('Y-m-d');
>> }
>>
>> i added the lines from the Stack answer to my bootstrap.php, but that 
>> didn't work either:
>> I18n::locale('en-US');
>> Type::build('datetime')->useLocaleParser();
>>
>> No matter what i do, the MySql UPDATE uses the 'm/d/Y' string instead of 
>> the date object:
>> UPDATE listings SET ready_date = '06/01/2015' , modified = '2015-05-11 
>> 05:00:54' WHERE id = 20
>>
>> What do i try next?
>>
>> Thanks,
>> joe t.
>>
>>
>>
>>
>>
>>
>> On Thursday, 2 April 2015 14:56:29 UTC-4, José Lorenzo wrote:
>>>
>>> Read this:
>>>
>>>
>>> http://book.cakephp.org/3.0/en/orm/database-basics.html#parsing-localized-datetime-data
>>>
>>> On Thursday, April 2, 2015 at 6:10:58 PM UTC+2, Celso wrote:
>>>>
>>>> Hi guys I have a table in Mysql with a date field,  and I need to allow 
>>>> my user writes something like *31/12/2015*.
>>>>
>>>>
>>>> echo $this->Form->input('data_nascimento', ['type' => 'text', 
>>>> 'maxlength'=> '10']);
>>>>
>>>> I've tried 
>>>> Time::$defaultLocale = 'pt-BR';
>>>>
>>>> in *AppController* but the problem persists... and 
>>>> 'timezone' => 'BRT'
>>>> in *app.php* does not works
>>>>
>>>> If I update the value directly in MySQL and use the 
>>>> Time::setToStringFormat('dd/MM/YYYY'); 
>>>> in AppController the date is showed in a nice format however my real 
>>>> problem is how to save() because I don't know how change the locale of 
>>>> Cake 
>>>> 3.0.
>>>>
>>>>
>>>>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to