microseconds - Consigue la marca de tiempo de hoy y ayer en php
strtotime php (7)
A partir de PHP 7 puedes escribir algo como this :
$today = new /DateTime();
$yesterday = (clone $today)->modify(''-1 day'');
$dayBefore = (clone $yesterday)->modify(''-1 day'');
// Then call ->format(''Y-m-d 00:00:00''); on each objects
¿Cómo puedo obtener la marca de tiempo de las 12 en punto de hoy, ayer y anteayer usando la función strtotime () en php?
Las 12 en punto es una variable y sería cambiada por el usuario.
OO Equivalente
$oToday = new DateTime();
$oToday->setTime($iHour, 0);
$oYesterday = clone $oToday;
$oYesterday->modify(''-1 day'');
$oDayBefore = clone $oYesterday;
$oDayBefore->modify(''-1 day'');
Puede encontrar fácilmente cualquier fecha utilizando el objeto DateTime
. Es muy flexible.
$yesterday = new DateTime(''yesterday'');
echo $yesterday->format(''Y-m-d'');
$firstModayOfApril = new DateTime(''first monday of april'');
echo $firstModayOfApril->format(''Y-m-d'');
$nextMonday = new DateTime(''next monday'');
echo $nextMonday->format(''Y-m-d'');
para empezar el día de ayer
$oDate = new DateTime();
$oDate->modify(''-1 day'');
echo $oDate->format(''Y-m-d 00:00:00'');
resultado
2014-11-05 00:00:00
strtotime admite una serie de modificadores interesantes que se pueden usar:
$hour = 12;
$today = strtotime("today $hour:00");
$yesterday = strtotime("yesterday $hour:00");
$dayBeforeYesterday = strtotime("yesterday -1 day $hour:00");
echo date("Y-m-d H:i:s/n", $today);
echo date("Y-m-d H:i:s/n", $yesterday);
echo date("Y-m-d H:i:s/n", $dayBeforeYesterday);
Funciona como se predijo:
2011-01-24 12:00:00
2011-01-23 12:00:00
2011-01-22 12:00:00
$hour = 12;
$today = strtotime($hour . '':00:00'');
$yesterday = strtotime(''-1 day'', $today);
$dayBeforeYesterday = strtotime(''-1 day'', $yesterday);