如何防止 PHP 日期时间修改时回显格式



你好,

我在输出日期时间对象时遇到了一个简单的问题。

<?php
$today = new DateTime();
echo $today->format('Y-m-d'); // 2017-04-07
echo $today->modify('+1 day')->format('Y-m-d'); // 2017-04-08
echo $today->format('Y-m-d'); // 2017-04-08 but I want 2017-04-07

我真的不想在输出时更改我的对象。当我回显$x+1时,$x并没有改变它的值。我怎样才能轻松地使用它?我需要很好的技术来将我的数据时间输出到我的 CRON 中的数据库。我多次输出它,并在每次输出之前声明 DateTime 对象会破坏我的代码和有效性(例如,50.000 个用户 * 30 个额外的 DateTime 对象声明。

请帮忙,

亚瑟

这对

你有帮助吗?

$start = new DateTimeImmutable('2013-01-29');
$datetime = $start->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

而是简单的DateTime使用DateTimeImmutable

每次调用DateTimeImmutable对象都会返回新对象,因此源$today不会更改。

$today = new DateTimeImmutable();
echo $today->format('Y-m-d') . PHP_EOL; // 2017-04-07
echo $today->modify('+1 day')->format('Y-m-d') . PHP_EOL; // 2017-04-08
echo $today->format('Y-m-d') . PHP_EOL; // 2017-04-07

保留在变量中

   $today = new DateTime();
    $first  = $today->format('Y-m-d'); // 2017-04-07
    $second = $today->modify('+1 day')->format('Y-m-d'); // 2017-04-08
    echo $first;
    echo $second;

最新更新