PHP If/else 带有格式化日期的语句以确定一天中的部分
PHP If/else statement with formatted date to determine the part of the day
我正在尝试在 PHP 中做一个简单的 if/else 声明。像这样简单的东西:
<?php
$time = 13;
if ($time < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
问题是我从数据库收到的值是未格式化的时间格式(例如:2014-09-08 06:00:00)。我可以使用以下格式设置此日期的格式:
$time->format('H');
从日月年中去掉日期。但是您不能将其用作变量。这就是我想要做的:
<?php $deliverytime = new DateTime('2014-09-08 06:00:00');
$deliverytime->format('H');
if ($deliverytime < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
我现在这不起作用,因为我试图将格式化日期用作不起作用的变量。是否有另一种方法可以使用格式化日期来确定当天休息的部分?
此致,
马泰斯
<?php
$deliverytime = new DateTime('2014-09-08 06:00:00');
$hour = $deliverytime->format('H');
if ($hour < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
$deliverytime->format()
是一种 returns 格式化日期的方法,您必须将其存储在某处才能使用该方法 returns,如上面的代码所示。
实际上,您将整个对象传递给 if 语句,您只需要所用方法的结果。
But you can not use this as a variable
是的,你可以。这很好用:
<?php
$deliverytime = new DateTime('2014-09-08 06:00:00');
$hour = (int) $deliverytime->format('H');
if ($hour < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
我不会将 DateTime 用于如此简单的事情。
这就是我要做的:
$date = "2014-09-08 06:00:00";
$date = strtotime($date);
if (date('H', $date) < 12){
echo "Morning";
} else {
echo "Afternoon or evening";
}
也许不是最好的方法,但您也可以使用预匹配来获取值:
preg_match('/[0-9]{4}\-[0-9]{2}-[0-9]{2} 0?([0-9]+)\:[0-9]{2}\:[0-9]{2}/', $date, $match);
$hour = intval($match[1]);
我正在尝试在 PHP 中做一个简单的 if/else 声明。像这样简单的东西:
<?php
$time = 13;
if ($time < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
问题是我从数据库收到的值是未格式化的时间格式(例如:2014-09-08 06:00:00)。我可以使用以下格式设置此日期的格式:
$time->format('H');
从日月年中去掉日期。但是您不能将其用作变量。这就是我想要做的:
<?php $deliverytime = new DateTime('2014-09-08 06:00:00');
$deliverytime->format('H');
if ($deliverytime < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
我现在这不起作用,因为我试图将格式化日期用作不起作用的变量。是否有另一种方法可以使用格式化日期来确定当天休息的部分?
此致, 马泰斯
<?php
$deliverytime = new DateTime('2014-09-08 06:00:00');
$hour = $deliverytime->format('H');
if ($hour < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
$deliverytime->format()
是一种 returns 格式化日期的方法,您必须将其存储在某处才能使用该方法 returns,如上面的代码所示。
实际上,您将整个对象传递给 if 语句,您只需要所用方法的结果。
But you can not use this as a variable
是的,你可以。这很好用:
<?php
$deliverytime = new DateTime('2014-09-08 06:00:00');
$hour = (int) $deliverytime->format('H');
if ($hour < 12) {
echo "Morning";
} else {
echo "Afternoon or evening";
}
?>
我不会将 DateTime 用于如此简单的事情。 这就是我要做的:
$date = "2014-09-08 06:00:00";
$date = strtotime($date);
if (date('H', $date) < 12){
echo "Morning";
} else {
echo "Afternoon or evening";
}
也许不是最好的方法,但您也可以使用预匹配来获取值:
preg_match('/[0-9]{4}\-[0-9]{2}-[0-9]{2} 0?([0-9]+)\:[0-9]{2}\:[0-9]{2}/', $date, $match);
$hour = intval($match[1]);