PHP新DateTime vs date()

doz*_*z87 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);
Run Code Online (Sandbox Code Playgroud)

这个不起作用的唯一部分是日期,我得到一个输出:

(newline)
(newline)
(missing date)      -----------------
Run Code Online (Sandbox Code Playgroud)

但是,如果我切换到使用这样的date()功能:

$log = "\n\n" . date("F d Y H:i:s") . " ----------------- \n\n\n";
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

另一件事是,如果我在代码中设置一些断点并逐步执行代码的这一部分,它就可以完美地运行.让我觉得它不是在等待DateTime对象的实例化,所以没有什么可以打印出来的.

我也遇到过这个问题,并且只是选择了找到不同的方法,但现在这真的让我烦恼.

gms*_*tos 8

您需要使用该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);
Run Code Online (Sandbox Code Playgroud)

时间和日期格式是你在日期函数使用相同.