如何在 PHP 中使用 DateTime 来获取一天中特定时间的下一次出现,如果不是过去,是今天,还是明天(如果过去)?



如何在 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 库中找不到解决方案,只需对其进行编程即可。

提示:

  1. 从当前时间 - $now 中获取日期时间对象。

  2. 获取$now->格式('H'(并将其转换为整数

  3. 将值与 17 进行比较,并根据结果使用"今天下午 5 点"或"明天下午 5 点">

如果你做的一切都正确,你需要 3-7 行代码,具体取决于你的编码风格

相关内容

最新更新