PHP新DateTime vs date()

时间:2016-09-09 03:24:50

标签: 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";

效果很好。

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

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

1 个答案:

答案 0 :(得分: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);

time and date formats与您在日期函数中使用的相同。