你好,
我在输出日期时间对象时遇到了一个简单的问题。
<?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;