如何防止PHP DateTime修改echo格式?

时间:2017-04-07 16:33:26

标签: php date datetime time

您好

输出我的DateTime对象时遇到一个简单的问题。

<?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没有改变它的值。我怎样才能轻松使用它?我需要很好的技术来将我的DataTime输出到我的CRON中的DB。我输出了很多次并在每次输出之前声明DateTime对象会破坏我的代码和有效性(例如50.000用户* 30个额外的DateTime对象声明。)

请求帮助,

亚瑟

3 个答案:

答案 0 :(得分:2)

这对你有帮助吗?

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

答案 1 :(得分:2)

相反简单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

答案 2 :(得分:0)

保留变量

 <pre>
    Hello Wish you all the best. This is just a testing of multiline as 
    End Line. Last Comment.
    </pre>