लंबे समय तक इस समस्या पर ध्यान देने के बाद मुझे सही और त्वरित समाधान मिला। विज्ञान बनाने के 6 महीने बाद, मुझे मिला:
बिलकुल ठीक:
$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.
डॉक्स और इंटरनेट पर लोग इसे स्पष्ट नहीं करते हैं, लेकिन फ़ॉर्मेट सेट करना केवल इस फ़ॉर्म पर काम करता है।
और इसे इकाई में ले जाने के लिए, आपको अपना खुद का हाइड्रेटर लिखना होगा जो सिद्धांत हाइड्रेटर का विस्तार कर रहा है:
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);
}
}
यह किसी भी दिनांक प्रारूप के साथ काम करना आसान बनाता है। आप अपनी इच्छानुसार इस कस्टम हाइड्रेटर पर लोकेल अभिकथन को आगे बढ़ा सकते हैं।