Lo hice así, dejando el campo tipo date en la entidad y me dice que el formato es invalido,
FUNCIONO luego revisando la informaron que me pásate en el link!!!! :D
les explico para los que le suceda lo mismo:
resulta que el fomato yy-mm-dd de php no significa lo mismo en javascript! y viceversa:
para una fecha 1983-09-21, el formato en la clase de php dentro de la deficion del form es yyyy-mm-dd
mientras que el formato que se le da al plugin datepicker de jquery UI es yy-mm-dd
dejo el código que funciona:
1-. en la entidad:
/**
* @var datetime $fecha_nacimiento
*
* @ORM\Column(name="fecha_nacimiento", type="date")
* @Assert\Date(message = "formato de fecha incorrecto")
*
*/
private $fecha_nacimiento;
2-. en la definición del form:
$builder
->add('nombre', 'text', array('required' => true))
->add('apellidos', 'text', array('required' => true))
->add('email', 'email', array('required' => true, 'label' => 'email/username'))
->add('password', 'repeated', array(
'type' => 'password',
'label' => 'Autenticación',
'first_name' => 'Contraseña',
'second_name' => 'repita la contraseña',
'invalid_message' => 'Las dos contraseñas deben coincidir',
'required' => true
)
)
->add('direccion', 'textarea', array('required' => true))
->add('fecha_nacimiento', 'date', array(
'attr' => array('class' => 'calendario', 'readonly' => 'readonly'),
'widget' => 'single_text',
'format' => 'yyyy-mm-dd',
'required' => true
)
)
;
3.- en la plantilla:
en la tabla
<tr>
<td>
{{ form_label(formulario.fecha_nacimiento) }}
</td>
<td>
{{ form_widget(formulario.fecha_nacimiento) }}
{{ form_errors(formulario.fecha_nacimiento) }}
</td>
</tr>
un comodin <input type="hidden" id="act_year" value="{{ 'now'|date('Y') }}" />
el javascript
actual = $('#act_year').val();
$('form input.calendario').datepicker({
dateFormat: 'yy-mm-dd',
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octuble','Noviembre','Diciembre'],
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
yearRange: '1900:'+actual,
changeYear: true,
changeMonth: true
});