2017-04-07 3 views
0

こんにちは、PHPの日付時刻がエコー形式を変更するのを防ぐ方法は?

私の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は値を変更していません。どうすれば簡単に対応できますか? CRONのDataTimeをDBに出力するには、良いテクニックが必要です。 I出力も何度と各出力は、私のコードと有効性を台無しにする前に、DateTimeオブジェクトを宣言する(例えば50.000ユーザーを* 30の、追加のDateTimeオブジェクトの宣言を。)

してくださいヘルプは、

アーサー

答えて

2

これは役立ちますか?

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

変数を保持する

$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; 
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 
+0

私はあなたに+1を与え、ルールはルールです。私はあなたに1分前に「最高」を与える必要があります:)ありがとう。 – Edenwave

+0

私の後1分ですが、それは大丈夫です –

+0

ノルベルト・ボロス:2017-04-07 16:37:10Z、u_mulder:2017-04-07 16:37:25Z :) – Edenwave

関連する問題