Setelah lama memperhatikan masalah ini saya menemukan solusi yang tepat dan cepat. Setelah 6 bulan membuat sains, saya mendapatkan:
Benar semua:
$traindate = new Element\DateTime('trainDate');
$traindate->setAttributes(array(
'name' => 'trainDate',
'id' => 'trainDate',
'size' => '30',
'class' => 'datepicker',
));
$traindate->setFormat('d/m/Y'); //ONLY WORKS ON THIS FORMAT.
Dokumen dan orang-orang melalui internet tidak menjelaskannya, tetapi untuk mengatur Format hanya berfungsi pada formulir ini.
Dan untuk mengambil ini ke Entity, Anda perlu menulis Hydrator Anda sendiri dengan memperluas DoctrineHydrator:
namespace Application\Hydrator;
use DoctrineModule\Stdlib\Hydrator\DoctrineObject;
class MyCustomHydrator extends DoctrineObject {
protected function handleTypeConversions($value, $typeOfField)
{
if($typeOfField == 'datetime'){
return \DateTime::createFromFormat('d/m/Y', $value);
}
return parent::handleTypeConversions($value, $typeOfField);
}
}
Ini membuatnya mudah untuk bekerja dengan format tanggal apa pun. Anda dapat memperluas lebih lanjut membuat pernyataan Lokal pada Hydrator Kustom ini sesuai keinginan Anda.