Posible duplicado:
Obtenga la marca de tiempo de hoy y ayer en php
Me preguntaba si había una forma sencilla de obtener la fecha de ayer a través de este formato:
date("F j, Y");
Posible duplicado:
Obtenga la marca de tiempo de hoy y ayer en php
Me preguntaba si había una forma sencilla de obtener la fecha de ayer a través de este formato:
date("F j, Y");
reycrunch
date()
en sí mismo es solo para formatear, pero acepta un segundo parámetro.
date("F j, Y", time() - 60 * 60 * 24);
Para mantenerlo simple, solo resto 24 horas de la marca de tiempo de Unix.
Un enfoque OOP moderno está utilizando DateTime
$date = new DateTime();
$date->sub(new DateInterval('P1D'));
echo $date->format('F j, Y') . "\n";
O en tu caso (más legible/obvio)
$date = new DateTime();
$date->add(DateInterval::createFromDateString('yesterday'));
echo $date->format('F j, Y') . "\n";
(Porque DateInterval
es negativo aquí, debemos add()
aquí)
Ver también: DateTime::sub()
y DateInterval
muy buena respuesta, hay muchas formas de hacerlo pero tienes la simple, corta y fácil de entender (+ la OOP para los interesados en usar más RAM 😉
– neofuturo
12 de abril de 2012 a las 8:04
@neofutur Además de “queremos desperdiciar nuestra RAM”, el enfoque OOP es útil, cuando ya tiene un DateTime
-, o un DateInterval
-objeto (o ambos), que puede ser el caso en una aplicación basada en programación orientada a objetos (por ejemplo, $customer->expire->add(DateInterval::createFromDateString('+1 year')) // customer paid for one additional year
) También tenga en cuenta que DateInterval
entiende ISO8601 para intervalos de tiempo, pero date()
no. Al final del curso: Selecciona el que mejor se adapte a tus necesidades 🙂
– KingCrunch
12 de abril de 2012 a las 8:19
¡Esta NO es una respuesta correcta! El horario de verano hace jornadas de 23 y 25 horas. ¡Así que esto NO te está dando una buena respuesta 2 horas al año!
– patricio
24/04/2013 a las 15:25
@patrick Punto interesante 🙂 Sí, tienes razón, pero esto solo es cierto para la primera solución, no para la siguiente utilizando DateInterval
.
– KingCrunch
25 de abril de 2013 a las 14:26
No olvides usarlo como \DateTime
y \DateInterval
en el contexto de un espacio de nombres.
– Thomas Kekeisen
21 de abril de 2017 a las 9:30
strtotime()
como en date("F j, Y", strtotime("yesterday"));
+1 porque esto hace que la intención sea un poco más obvia al escanear el código. Código autodocumentado y todo eso.
– Justin ᚅᚔᚈᚄᚒᚔ
22 de julio de 2011 a las 22:48
Vijay Verma
Cuan sencillo 🙂
date("F j, Y", strtotime( '-1 days' ) );
Ejemplo:
echo date("Y-m-j H:i:s", strtotime( '-1 days' ) ); // 2018-07-18 07:02:43
Producción:
2018-07-17 07:02:43
Prefiero esta respuesta. El desplazamiento (‘-1’) no tiene que ser una constante: se puede construir con una variable, incluso con un bucle: strtotime( '-'.$s.' days' )
dónde $s
es cuántos días hacia atrás (o hacia adelante si juegas con signos) quieres ir.
– Enrique
25 de marzo de 2013 a las 3:04
lo necesitaba hace cinco días, así que este es el más fácil de modificar.
– omikes
27 de marzo de 2018 a las 15:43
Usar Y-m-d
en vez de Y-m-j
para la fecha estándar ISO, j
no tiene un cero inicial.
– toster-cx
14 de febrero de 2019 a las 16:30