2011-09-09 33 views
5

Tengo un año (2002) y estoy tratando de hacerlo en el siguiente formato:php: fecha de formato ISO8601?

2002-00-00T00: 00: 00

He intentado varias iteraciones, el último de los cuales fue este :

$testdate = DateTime::createFromFormat(DateTime::ISO8601, date("c")) 
echo date_format($testdate, '2002'); 

Pero, incluso si me acerco, siempre parece añadir 00: 00 al final de la misma ...

Respuesta

13

el formato 'c' en PHP siempre anexa el desplazamiento de zona horaria. No puedes evitar eso. Pero se puede construir la fecha a sí mismo de componentes:

date('Y-m-d\TH:i:s', $testdate); 
+0

siempre parecen hacer las cosas más complicadas de lo necesario ... Gracias! – KumbaThought

+1

omg! Estuve buscando esto por mucho tiempo. Descubrí la parte 'c', pero no sabía que tenía que escapar de la T. Seguí recibiendo la zona horaria para T. ¡Whew! Gracias. –

+4

gmdate ('Y-m-d \ TH: i: s \ Z', $ date) – 4esn0k

0
date('Y-m-d\TH:i:s\Z', time() - date('Z')); 
+5

elabore más para una mejor explicación – Rumit

+0

Gracias por este fragmento de código, que podría proporcionar alguna ayuda limitada a corto plazo. Una explicación adecuada [mejoraría en gran medida] (// meta.stackexchange.com/q/114762) su valor a largo plazo mostrando * why * esta es una buena solución al problema, y ​​lo haría más útil para los lectores futuros con otras preguntas similares. Por favor [edite] su respuesta para agregar alguna explicación, incluidas las suposiciones que ha hecho. –