2016-09-09 3 views
1

私は実行しているスクリプトの基本ログファイルを作成しようとしていますが、実際のログに入る前にログの先頭に現在の日付/時刻を挿入します。PHPの新しいDateTimeと日付()

私のコードは以下の通りです:

$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"; 

これは完全に機能します。

もう1つのことは、コードにいくつかのブレークポイントを設定し、コードのこのセクションをステップ実行すれば、完全に機能するということです。私はそれがDateTimeオブジェクトのインスタンス化を待っていないと思うので、何も印刷されません。

私はこの問題を他のものとも持っていて、その周りでさまざまな方法を見つけることを選択しましたが、これは本当に今私を悩ましています。

+0

@PaulCrovellaリンクしてくれてありがとうございます。通常はフォーマット方法を使用しますが、ちょうど私が使っているすべてのものをプリントアウトしたいときは、日付をつけて、本当に面白いです。 – doz87

答えて

7

DateTimeオブジェクトから日付を印刷するには、formatメソッドを使用する必要があります。

$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はコメントを入力しているのと同じです –

関連する問題