我正在尝试为正在运行的脚本编写基本日志文件,并且我希望在实际日志记录之前在日志的开头插入当前日期/时间。
我的代码如下:
$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 :(得分:8)
$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与您在日期函数中使用的相同。