我有以下代码:
$now = date("Y-m-d H:m:s");
$date = date("Y-m-d H:m:s", strtotime('-24 hours', $now));
Run Code Online (Sandbox Code Playgroud)
但是,现在它给了我这个错误:
A non well formed numeric value encountered in...
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
vas*_*ite 57
$date = (new \DateTime())->modify('-24 hours');
Run Code Online (Sandbox Code Playgroud)
要么
$date = (new \DateTime())->modify('-1 day');
Run Code Online (Sandbox Code Playgroud)
(后者考虑到这个评论,因为它是一个有效点.)
应该在这里工作正常.见http://PHP.net/datetime
$ date将是DateTime的一个实例,一个真正的DateTime对象.
Joe*_*kes 36
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.
Run Code Online (Sandbox Code Playgroud)
我建议使用datetime库,因为它是一种更面向对象的方法.
$date = new DateTime(); //date & time of right now. (Like time())
$date->sub(new DateInterval('P1D')); //subtract period of 1 day
Run Code Online (Sandbox Code Playgroud)
这样做的好处是你可以重用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.
Run Code Online (Sandbox Code Playgroud)
Sum*_*ani 10
你可以通过多种方式做到这一点......
echo date('Y-m-d H:i:s',strtotime('-24 hours')); // "i" for minutes with leading zeros
Run Code Online (Sandbox Code Playgroud)
要么
echo date('Y-m-d H:i:s',strtotime('last day')); // 24 hours (1 day)
Run Code Online (Sandbox Code Playgroud)
产量
2013-07-17 10:07:29
Run Code Online (Sandbox Code Playgroud)
最简单的方法来减少或增加时间,
<?php
**#Subtract 24 hours**
$dtSub = new DateTime('- 24 hours');
var_dump($dtSub->format('Y-m-d H:m:s'));
**#Add 24 hours**
$dtAdd = new DateTime('24 hours');
var_dump($dtAdd->format('Y-m-d H:m:s'));die;
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62935 次 |
| 最近记录: |