2016-09-09 170 views
1

我正在嘗試爲正在運行的腳本編寫基本日誌文件,並且我想在實際日誌記錄之前在日誌的開頭插入當前日期/時間。PHP新日期時間vs日期()

我的代碼如下:

$con = connectToDatabase(); 
$now = new DateTime; 
$filePath = 'wipe-log.log'; 
$file = fopen($filePath, 'a+'); 

$log = "\n\n" . $now->date . " ----------------- \n\n\n"; 

fwrite($file, $log); 

這不工作的唯一部分是日期,我得到的輸出:

(newline) 
(newline) 
(missing date)  ----------------- 

但是,如果我切換到使用date()這樣的功能:

$log = "\n\n" . date("F d Y H:i:s") . " ----------------- \n\n\n"; 

它的工作完美。

另一件事是,如果我在代碼中設置了一些斷點並逐步完成代碼的這一部分,那麼它可以很好地工作。使我認爲它不是在等待DateTime對象的實例化,因此沒有任何可打印的東西。

我也有過這個問題與其他事情也只是選擇找到不同的方式,但這現在真的讓我感到困擾。

+0

@PaulCrovella感謝您的鏈接,現在有很多意義。通常情況下,我會使用格式化方法,但是當我只想打印出所有我將使用的內容時 - >日期,但這真的很有趣。 – doz87

回答

7

您需要使用format方法來打印DateTime對象的日期。

$con = connectToDatabase(); 
$now = new DateTime; 
$filePath = 'wipe-log.log'; 
$file = fopen($filePath, 'a+'); 

$log = "\n\n" . $now->format("F d Y H:i:s"). " ----------------- \n\n\n"; 

fwrite($file, $log); 

time and date formats你在日期函數使用相同。

+0

@TheodoreMessinezis就像我在輸入評論 –