@ wow, indique por qué ninguno de los 4530 resultados respondió a su pregunta.
Gordon
1
@Gordon Todavía estoy aprendiendo cómo escribir de la A a la Z, pero me pareció que me enseñan cómo escribir de la Z a A :)
wow
@ wow No. Te enseñan a escribir el alfabeto ($ desde, $ hasta). Casi todos te dicen que uses date($format, strtotime($dateString))o el DateTimeobjeto equivalente. Solo difieren en la entrada a esas funciones. Todo lo que tiene que hacer es ir a las páginas correspondientes en el Manual de PHP y averiguar cuál es la entrada.
Gordon
3
@Gordon Sí, tienes razón. Solo sabía el alfabeto y ahora deletreaba el tiempo del concurso. Espero estar en la escuela adecuada.
Me gustaría señalar que el uso DATE_ISO8601produce una cadena de fecha que es ligeramente diferente a ISO8601 (faltan los dos puntos en el TZ, ISO8601 espera que los tiempos sean todos con O todos sin los dos puntos, no una mezcla) - date('c')produce una fecha válida estricta de ISO 8601 - Esto podría ocasionar errores de rastreo difíciles si el código espera un formato de fecha y hora ISO 8601 estricto. Ref: en.wikipedia.org/wiki/ISO_8601
ckm
38
Después de PHP 5, puede usar esto: echo date("c");formulario ISO 8601 con formato de fecha y hora.
Con respecto a esto , ambas expresiones son válidos para la zona horaria, para el formato básico: ±[hh]:[mm], ±[hh][mm], or ±[hh].
Pero tenga en cuenta que + 0X: 00 es correcto y + 0X00 es incorrecto para uso prolongado. Entonces es mejor usar date("c"). Una discusión similar aquí .
date($format, strtotime($dateString))
o elDateTime
objeto equivalente. Solo difieren en la entrada a esas funciones. Todo lo que tiene que hacer es ir a las páginas correspondientes en el Manual de PHP y averiguar cuál es la entrada.Respuestas:
Orientado a objetos
Esta es la forma recomendada.
Procesal
Para versiones anteriores de PHP, o si se siente más cómodo con el código de procedimiento.
fuente
2010-12-30T23:21:46+1100
¿cómo hacerlo2010-12-30T23:21:46+11:00
?preg_replace('/(?<=\d{2})(?=\d{2}$)/', ':', '2010-12-30T23:21:46+1100')
. Produce2010-12-30T23:21:46+11:00
.echo date('c', …
produce la salida con los dos puntos.date('c', strtotime('2010-12-30 23:21:46'))
nice @Gordon :)DATE_ISO8601
produce una cadena de fecha que es ligeramente diferente a ISO8601 (faltan los dos puntos en el TZ, ISO8601 espera que los tiempos sean todos con O todos sin los dos puntos, no una mezcla) -date('c')
produce una fecha válida estricta de ISO 8601 - Esto podría ocasionar errores de rastreo difíciles si el código espera un formato de fecha y hora ISO 8601 estricto. Ref: en.wikipedia.org/wiki/ISO_8601Después de PHP 5, puede usar esto:
echo date("c");
formulario ISO 8601 con formato de fecha y hora.http://ideone.com/nD7piL
Nota para comentarios:
Con respecto a esto , ambas expresiones son válidos para la zona horaria, para el formato básico:
±[hh]:[mm], ±[hh][mm], or ±[hh]
.Pero tenga en cuenta que + 0X: 00 es correcto y + 0X00 es incorrecto para uso prolongado. Entonces es mejor usar
date("c")
. Una discusión similar aquí .fuente
DATE_ISO8601
;+0X:00
vs+0X00
.'c'
yDATE_ISO8601
producen representaciones de tiempo ISO8601 válidas.DATE_ISO8601
no produce una representación ISO8601 válida. Sin embargo, DATE_ATOM lo haceCómo convertir de ISO 8601 a unixtimestamp:
Cómo convertir de unixtimestamp a ISO 8601 (servidor de zona horaria):
Cómo convertir de unixtimestamp a ISO 8601 (GMT):
Cómo convertir de unixtimestamp a ISO 8601 (zona horaria personalizada):
fuente
fuente
Si intenta establecer un valor en datetime-local
fuente