如何在 PHP 中使用 DateTime 来获取一天中特定时间的下一次出现,例如下午 5 点,相对于当前时间 - 如果当前时间<是下午 _x0035_=">= 5PM,则明天下午 5 点。是下午>
我使用的失败代码是:
date_default_timezone_set("America/New_York");
$today = new DateTime('next 5PM');
echo $today->format('Y-m-d H:i:s') . "n";
这些工作:
$today = new DateTime('5PM');
$today = new DateTime('today 5PM');
$today = new DateTime('tomorrow 5PM');
$today = new DateTime('yesterday 5PM');
但我想使用一个语句获取今天下午 5 点的日期时间,如果当前时间是下午 5 点<,或者明天下午 5 点的日期时间,如果现在的当前时间是>= 5PM。
是否可以简单地使用日期时间在一个语句中完成此操作?如果是这样,它是否取决于 PHP 版本?
我收到致命错误尝试:
$today = new DateTime('next 5PM');
谢谢
吉姆
您可以将当前小时与下午 5 点进行比较,如下所示
date_default_timezone_set("America/New_York");
if (date('H') < 17) {
$next = new DateTime('yesterday 5PM');
}
else{
$next = new DateTime('tomorrow 5PM');
}
echo $next->format('Y-m-d H:i:s') . "n";
如果您在 PHP 库中找不到解决方案,只需对其进行编程即可。
提示:
-
从当前时间 - $now 中获取日期时间对象。
-
获取$now->格式('H'(并将其转换为整数
-
将值与 17 进行比较,并根据结果使用"今天下午 5 点"或"明天下午 5 点">
如果你做的一切都正确,你需要 3-7 行代码,具体取决于你的编码风格