【发布时间】:2011-07-22 22:44:24
【问题描述】:
【问题讨论】:
【问题讨论】:
多么容易:)
date("F j, Y", strtotime( '-1 days' ) );
示例:
echo date("Y-m-j H:i:s", strtotime( '-1 days' ) ); // 2018-07-18 07:02:43
输出:
2018-07-17 07:02:43
【讨论】:
strtotime( '-'.$s.' days' ) 其中$s 是多少天后(或者如果使用符号则向前)你想去。
Y-m-d 代替Y-m-j 作为ISO 标准日期,j 没有前导零。
date() 本身仅用于格式化,但它接受第二个参数。
date("F j, Y", time() - 60 * 60 * 24);
为了简单起见,我只是从 unix 时间戳中减去 24 小时。
现代 oop 方法是使用 DateTime
$date = new DateTime();
$date->sub(new DateInterval('P1D'));
echo $date->format('F j, Y') . "\n";
或者在你的情况下(更易读/更明显)
$date = new DateTime();
$date->add(DateInterval::createFromDateString('yesterday'));
echo $date->format('F j, Y') . "\n";
(因为这里DateInterval是负数,所以这里必须add()它)
另请参阅:DateTime::sub() 和 DateInterval
【讨论】:
DateTime- 或 DateInterval-object(或两者)时,在基于 OOP 的应用程序中可能会出现这种情况(例如 $customer->expire->add(DateInterval::createFromDateString('+1 year')) // customer paid for one additional year) 另请注意,DateInterval 理解 ISO8601 的时间间隔,但 date() 不理解。在课程结束时:选择最适合您需求的课程:)
DateInterval 的解决方案。
\DateTime 和\DateInterval。
strtotime(),如date("F j, Y", strtotime("yesterday"));
【讨论】: