Nasıl iyi bir PHP DateTime nesnesine CakePHP tarih seçici form verilerini dönüştürmek için?

1 Cevap php

Ben bu yapıyorum app/views/mymodel/add.ctp:

<?php echo $form->input('Mymodel.mydatefield'); ?>

Ve sonra, in app/controllers/mymodel_controller.php,

function add() {
    # ... (if we have some submitted data)
    $datestring = $this->data['Mymodel']['mydatefield']['year'] . '-' .
                  $this->data['Mymodel']['mydatefield']['month'] . '-' .
                  $this->data['Mymodel']['mydatefield']['day'];
    $mydatefield = DateTime::createFromFormat('Y-m-d', $datestring);
}

Absolutly has bunu yapmak için daha iyi bir yolu var olmak - Ben sadece yol henüz CakePHP'ye bulamadık ...

Ne yapmak istiyorsunuz nedir:

function add() {
    # ... (if we have some submitted data)       
    $mydatefield = $this->data['Mymodel']['mydatefiled']; # obviously doesn't work
}

1 Cevap

Sen, bir parametre olarak $this->data['Mymodel']['mydatefiled'] alır yıl / ay / gün dizide, ve buna göre ayrıştırmak olduğunu varsayar bir Yardımcı yazabilirsiniz:

<?php
/* /app/views/helpers/date.php */
class DateHelper extends AppHelper {
    function ParseDateTime($dateField) {
         $datestring = $dateField['year'] . '-' .$dateField['month'] . '-' . $dateField['day'];
         return DateTime::createFromFormat('Y-m-d', $datestring);
    }
}
?>

Ya da böyle bir şey. Ben DateTime nesne PHP 5.2 .. Lütfen eklendi düşünüyorsun? CakePHP 1.x PHP 4 uyumluluğu hedefleyen, bu yüzden en azından 1.x. için, bunu yapmak için herhangi bir "CakePHP yolu" var sanmıyorum