Check out http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::format
You can pass your date and specify which date format you want (see http://www.php.net/date), so something like $date = $this->request->data['BookedSurvey']['survey_date']; $formattedDate = CakeTime::format("{$date['year']}-{$date['month']}-{$date['day']}", "%M %D, %Y); I imagine there's a much better way to do this but I'm strapped for time right now to think any harder, sorry! :) On 23 July 2014 12:11, Jumy Elerossë <[email protected]> wrote: > Thank you very much Stephen. I only have a noob question... How can I tell > to my Form to send the date in that format? > > This is the code of the button that I have in my view: > > echo $this->Form->input('BookedSurvey.survey_date', array( > 'type'=>'date', > 'label' => '', > 'dateFormat' => 'DMY', > 'minYear' => date('Y'), > 'minMonth' => date('M'), > 'minDay' => date('D'), > 'div' => 'col col-md-9', > 'style' => 'margin: 15px 5px 5px 0px' > )); > > And when I do a > print_r($this->request->data['BookedSurvey']['survey_date']); > > it send the date as > Array ( [day] => 22 [month] => 01 [year] => 2014 ) > > > It's the only thing that I can't make to work... > > > On Wednesday, 23 July 2014 11:35:42 UTC+1, Stephen S wrote: > >> Add the following above your controller class: >> >> App::uses('CakeTime', 'Utility'); >> >> >> This will give you access to the CakeTime utility within your controller >> ($this->Time references the helper which is for use in views) Something >> like this should work I think, syntax may be a little off maybe, I haven't >> had time to test. >> >> $isBooked = $this->Point->BookedSurvey->find('count', array( >>> 'conditions' => CakeTime::dayAsSql('Jul 23, 2014', 'survey_date') // >>> replace the date as you see fit, using Jul 23, 2014 as an example >>> )); >> >> >> >> On 23 July 2014 11:21, Jumy Elerossë <[email protected]> wrote: >> >>> Thank very much for your help. >>> >>> Yes, survey_date is using datetime, so the code should be something like >>> this? >>> >>> if ($this->request->is('post')) { >>> >>> >>> $isBooked = $this->Point->BookedSurvey->find('count', array( >>> 'conditions' => array( >>> $this->Time->dayAsSql('BookedSurvey.survey_date') >>> => date('Y-m-d') // Maybe pass an actual specific date rather than just >>> today >>> ) >>> )); >>> >>> echo "status"; >>> >>> if($isBooked > 0) { >>> echo "Already booked"; >>> } >>> >>> >>> } >>> >>> >>> Because it returns this error: >>> >>>> Fatal Error >>>> >>>> Error: Call to a member function dayAsSql() on a non-object >>>> >>> >>> On Wednesday, 23 July 2014 08:41:00 UTC+1, Stephen S wrote: >>> >>>> You could try something like the following >>>> >>>> $isBooked = $this->Point->BookedSurvey->find('count', array( >>>> 'conditions' => array( >>>> 'BookedSurvey.survey_date' => date('Y-m-d') // Maybe pass an >>>> actual specific date rather than just today >>>> ) >>>> )); >>>> >>>> if($isBooked > 0) { >>>> echo "Already booked"; >>>> } >>>> >>>> If your survey_date field is using datetime, you can check between >>>> 00:00:00 and 23:59:59 using the TimeHelper::dayAsSql method here >>>> http://book.cakephp.org/2.0/en/core-libraries/helpers/t >>>> ime.html#TimeHelper::dayAsSql >>>> >>>> I'd recommend using the time helper where applicable really, you'd need >>>> to use CakeTime:: if you plan to do this in a controller or model. >>>> >>>> Hope this helps >>>> >>>> >>>> On 23 July 2014 01:44, Jumy Elerossë <[email protected]> wrote: >>>> >>>>> Hello everyone. >>>>> >>>>> I'm struggling with a problem since a week ago, and this is driving me >>>>> crazy. >>>>> >>>>> I'm doing a website for doing surveys in the forest. This is the >>>>> schema: >>>>> >>>>> 1 place have several points, and for each point, an user can book a >>>>> day for doing a survey. If that point has booked already a survey for that >>>>> date, an error will be shown. >>>>> >>>>> I have the following tables: places, points, users and booked_surveys. >>>>> >>>>> The table booked_surveys has the following fields: id, survey_date, >>>>> point_id and user_id >>>>> >>>>> Models: Place, Point, User, BookedSurvey >>>>> >>>>> Controllers: PlacesController, PointController, UserController, >>>>> BookedSurveysController >>>>> >>>>> Views: add, edit, index and view for each one. >>>>> >>>>> When the user is viewing a point, there's a date selector in the view >>>>> for booking: >>>>> >>>>> <h2>Book a date:</h2> >>>>> >>>>> <?php echo $this->Form->create('BoostCake', array( >>>>> 'inputDefaults' => array( >>>>> 'div' => 'form-group', >>>>> 'label' => array( >>>>> 'class' => 'col col-md-1 control-label' >>>>> ), >>>>> 'wrapInput' => 'col col-md-9', >>>>> 'class' => 'form-control' >>>>> ), >>>>> 'class' => 'form-horizontal' >>>>> )); ?> >>>>> >>>>> <?php echo $this->Form->create('Point'); >>>>> >>>>> >>>>> echo $this->Form->input('BookedSurvey.survey_date', >>>>> array( >>>>> 'type'=>'date', >>>>> 'label' => '', >>>>> 'dateFormat' => 'YMD', >>>>> 'minYear' => date('Y'), >>>>> 'minMonth' => date('M'), >>>>> 'minDay' => date('D'), >>>>> 'div' => 'col col-md-9', >>>>> 'style' => 'margin: 15px 5px 5px 0px' >>>>> )); >>>>> >>>>> echo $this->Form->hidden('User.id', array( >>>>> 'value' => $user_id) >>>>> ); >>>>> >>>>> ?> >>>>> >>>>> >>>>> >>>>> <div class="form-group"> >>>>> <?php echo $this->Form->submit('Book survey', >>>>> array( >>>>> 'div' => 'col col-md-9', >>>>> 'class' => 'btn btn-success btn-lg', >>>>> 'style' => 'margin: 10px 5px 5px 10px' >>>>> )); ?> >>>>> </div> >>>>> >>>>> And then, the PointsControllers looks if there is someone that already >>>>> booked for that day. And this is what is driving me crazy, because I'm not >>>>> able to doing it to work. What I tried is this: >>>>> >>>>> if ($this->request->is('post')) { >>>>> >>>>> >>>>> >>>>> // Begin of comprobation >>>>> >>>>> $booked_condition = $this->Point->BookedSurvey->fi >>>>> nd('first', >>>>> array('conditions'=>array( >>>>> 'DATE(BookedSurvey.survey_ >>>>> date)'=>'date()'))); >>>>> >>>>> >>>>> >>>>> if ($booked_condition){ >>>>> >>>>> echo "Already booked"; >>>>> } >>>>> >>>>> >>>>> If anyone can PLEASE give some light to this... Please.... >>>>> >>>>> -- >>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> >>>>> Visit this group at http://groups.google.com/group/cake-php. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Kind Regards >>>> Stephen Speakman >>>> >>> -- >>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/cake-php. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Kind Regards >> Stephen Speakman >> > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/cake-php. > For more options, visit https://groups.google.com/d/optout. > -- Kind Regards Stephen Speakman -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
