J'ai le code suivant:
$now = date("Y-m-d H:m:s");
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));
Cependant, maintenant cela me donne cette erreur:
A non well formed numeric value encountered in...
pourquoi est-ce?
$date = (new \DateTime())->modify('-24 hours');
ou
$date = (new \DateTime())->modify('-1 day');
(Ce dernier prend en compte ce commentaire car c'est un point valable.)
Ça devrait marcher pour vous ici. Voir http://PHP.net/datetime
$ date sera une instance de DateTime , un objet DateTime réel.
strtotime()
s'attend à un horodatage Unix (qui est number seconds since Jan 01 1970
)
$date = date("Y-m-d H:i:s", strtotime('-24 hours', time())); ////time() is default so you do not need to specify.
je suggérerais cependant d'utiliser la bibliothèque datetime, car c'est une approche plus orientée objet.
$date = new DateTime(); //date & time of right now. (Like time())
$date->sub(new DateInterval('P1D')); //subtract period of 1 day
L'avantage de ceci est que vous pouvez réutiliser la DateInterval
:
$date = new DateTime(); //date & time of right now. (Like time())
$oneDayPeriod = new DateInterval('P1D'); //period of 1 day
$date->sub($oneDayPeriod);
$date->sub($oneDayPeriod); //2 days are subtracted.
$date2 = new DateTime();
$date2->sub($oneDayPeriod); //can use the same period, multiple times.
vous pouvez le faire de plusieurs façons ...
echo date('Y-m-d H:i:s',strtotime('-24 hours')); // "i" for minutes with leading zeros
OR
echo date('Y-m-d H:i:s',strtotime('last day')); // 24 hours (1 day)
Sortie
2013-07-17 10:07:29
Cela peut être utile pour vous:
//calculate like this
$date = date("Y-m-d H:m:s", (time()-(60*60*24)));
//check the date
echo $date;
$now = date("Y-m-d H:i:s");
$date = date("Y-m-d H:i:s", strtotime('-24 hours', strtotime($now)));
Ajouter "strtotime" avant $ maintenant, Et Y-m-d H: m: s remplacer par Y-m-d H: i: s
cela devrait fonctionner aussi
$date = date("Y-m-d H:m:s", strtotime('-24 hours'));
Vous pouvez simplement utiliser time()
pour obtenir l’horodatage actuel.
$date = date("Y-m-d H:m:s", strtotime('-24 hours', time()));
tout ce que vous avez à faire est de modifier votre code pour être
$now = strtotime(date("Y-m-d H:m:s"));
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));