一个简短的问题,我真的找不到答案。
在过程式PHP中,我可以回显日期echo date('Y-m-d'); ?>
在面向对象的PHP中,我必须使用两行
$now = new DateTime();
echo $now->format('Y-m-d');
有可能在一行中完成吗?
echo (new DateTime())->format('Y-m-d');
有两个选项:
-
使用括号创建一个DateTime实例并格式化结果:
// requires PHP >= 5.4 echo (new 'DateTime())->format('Y-m-d');
-
您可以使用
date_create
函数:// date_create is similar to new DateTime() echo 'date_create()->format('Y-m-d');
实例:https://3v4l.org/fllco
您可以这样尝试:
echo $date = new DateTime('2016-01-01');
面向对象风格:
<?php
try {
$date = new DateTime('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format('Y-m-d');
?>
程序风格:<?php
$date = date_create('2000-01-01');
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error'n";
}
exit(1);
}
echo date_format($date, 'Y-m-d');
?>