次のコードがあります。
$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.
PHP で DateTimes を処理するための最も一般的なライブラリはCarbonです。
ここでは、次のようにします。
$yesterday = Carbon::now()->subDay();
これはあなたに役立つかもしれません:
//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'));