PHP if/else语句带有格式化日期以确定当天的部分

1 php if-statement date formatted

我试图在PHP中创建一个简单的if/else语句.像这样简单:

<?php 
$time = 13;
if ($time < 12) {
  echo "Morning";
} else {
  echo "Afternoon or evening";
}
?>
Run Code Online (Sandbox Code Playgroud)

问题是我从数据库收到的值是一种未格式化的时间格式(如:2014-09-08 06:00:00).我可以使用以下格式设置此日期

$time->format('H');
Run Code Online (Sandbox Code Playgroud)

从日,月和年中剥离日期.但是你不能将它用作变量.这就是我想要做的:

<?php $deliverytime = new DateTime('2014-09-08 06:00:00');
$deliverytime->format('H');
if ($deliverytime < 12) {
  echo "Morning";
} else {
  echo "Afternoon or evening";
}
?>
Run Code Online (Sandbox Code Playgroud)

我现在这不起作用,因为我试图使用格式化的日期作为一个不起作用的变量.有没有其他方法可以使用格式化日期确定当天的部分?

此致,Matthijs

vca*_*les 6

<?php 
     $deliverytime = new DateTime('2014-09-08 06:00:00');
     $hour = $deliverytime->format('H');
     if ($hour < 12) {
       echo "Morning";
     } else {
       echo "Afternoon or evening";
     }
?>
Run Code Online (Sandbox Code Playgroud)

$deliverytime->format() 是一种返回格式化日期的方法,您必须将其存储在某处以使用该方法返回的内容,如上面的代码所示.

实际上,您将整个对象传递给if语句,您只需要使用您正在使用的方法的结果.