У меня есть следующий код:
$now = date("Y-m-d H:m:s");
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));
Однако теперь это дает мне эту ошибку:
A non well formed numeric value encountered in...
почему это?
У меня есть следующий код:
$now = date("Y-m-d H:m:s");
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));
Однако теперь это дает мне эту ошибку:
A non well formed numeric value encountered in...
почему это?
$date = (new \DateTime())->modify('-24 hours');
или
$date = (new \DateTime())->modify('-1 day');
(Последний учитывает этот комментарий, поскольку это действительная точка.)
Должен работать отлично для вас здесь. См. http://PHP.net/datetime
$date будет экземпляром DateTime, реального объекта DateTime.
strtotime()
ожидает отметку времени unix (которая равна 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.
я бы предложил использовать библиотеку datetime, поскольку это более объектно-ориентированный подход.
$date = new DateTime(); //date & time of right now. (Like time())
$date->sub(new DateInterval('P1D')); //subtract period of 1 day
Преимущество этого заключается в том, что вы можете повторно использовать 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.
вы можете сделать это разными способами...
echo date('Y-m-d H:i:s',strtotime('-24 hours')); // "i" for minutes with leading zeros
ИЛИ
echo date('Y-m-d H:i:s',strtotime('last day')); // 24 hours (1 day)
Выход
2013-07-17 10:07:29
Это может быть полезно для вас:
//calculate like this
$date = date("Y-m-d H:m:s", (time()-(60*60*24)));
//check the date
echo $date;
это тоже должно работать
$date = date("Y-m-d H:m:s", strtotime('-24 hours'));
Вы можете просто использовать time()
, чтобы получить текущую временную метку.
$date = date("Y-m-d H:m:s", strtotime('-24 hours', time()));
все, что вам нужно сделать, это изменить код
$now = strtotime(date("Y-m-d H:m:s"));
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));
$now = date("Y-m-d H:i:s");
$date = date("Y-m-d H:i:s", strtotime('-24 hours', strtotime($now)));
Добавьте "strtotime" до $now, и Y-m-d H: m: s заменить на Y-m-d H: i: s