2011-08-30 8 views
48

que utilizan date('w', timestamp) y date('w', timestamp) saber el día, date('n', timestamp) durante meses, etc.Obtenga el año/mes/día de una fecha y hora en php?

Ahora estoy usando fecha y hora y me gustaría saber cuáles son las funciones equivalentes a conseguir un día, un mes, etc. desde una fecha y hora

PD: Sé que podría usar UNIX_TIMESTAMP() en una consulta SQL, pero prefiero evitar el uso de marcas de tiempo en mi código.

+1

¿Estás diciendo que está utilizando la clase DateTime de php? strtotime() en el resultado de fecha y hora debe darle una marca de tiempo para usar date() en. –

+0

La cantidad de votaciones alternas sobre las preguntas más triviales en StackOverflow en estos días es simplemente asombrosa. – j4k3

Respuesta

68

Uso DateTime con DateTime::format()

$datetime = new DateTime($dateTimeString); 
echo $datetime->format('w'); 
+5

¡Otro error de diseño en PHP! ¿Por qué no hay funciones getDay(), getMonth(), getYear(), etc.? ¿O una función que devuelve una matriz como getdate()? Qué lástima que tenga que usar estos personajes crípticos que ni siquiera son intuitivos. (w por día, ¿dónde está la lógica?) PHP está tan lleno de errores. Es realmente feo trabajar con PHP. – Elmue

+4

@Elmue Hay muchas cosas de las que culpar a PHP y puede continuar haciéndolo. O puede aceptar que esto fue tomado 1: 1 de C. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf (busque 'strftime') Usted se pregunta: ¿por qué "w" se refiere al día de la semana? Sorprendente. Al final (90%) normalmente no desea solo el mes o el día, sino una cadena de fecha formateada y dependiente de la configuración regional. Terminará en 'formato' de todos modos. – KingCrunch

19

Salida del manual: http://www.php.net/manual/en/datetime.format.php

<?php 
$date = new DateTime('2000-01-01'); 
echo $date->format('Y-m-d H:i:s'); 
?> 

seria: 2000-01-01 00:00:00

+0

Configuré una constante llamada TIMESTAMPFORMAT igual a 'Y-m-d H: i: s'. Viene muy útil trabajando con DateTime –

Cuestiones relacionadas