3

这似乎是一个基本问题,我不知道以前是否有人问过:

if在脚本中有这个语句:

if (date('H') < $loc_item -> closing) {

基本上它是一个商业脚本。这与商店关门时间有关。6点、7点等

该变量仅对小时使用值 1 - 24。但是,部分业务在下午 5:30 (17:30)、下午 6:30 (18:30) 关闭,

值 18.5 是否代表下午 6:30? 如果不是,那么使用日期函数输入的最简单方法是什么,我可以在其中添加值1830并且它知道我的意思是下午 6:30?

编辑:这里没有用户输出。脚本只需要知道在一天中的某个时间抛出一个“开关”。

4

4 回答 4

2

你可以使用strtotime()

date("Hi", strtotime("18:40"));
于 2013-07-04T16:14:52.877 回答
1

你并没有真正给我们足够的信息来回答这个问题。

首先,你不妨让你的脚本支持所有分钟......因为一些商店可能会在 6:45 关闭。

我认为您正在寻找的解决方案是简单地比较时间戳。

最简单的方法是使用strtotime。

于 2013-07-04T16:15:57.360 回答
1

如果您希望该date函数返回小时和分钟,那么date('H')不会为您执行此操作。你需要date('Hi'). 这将返回一个字符串。以下是完整的代码片段:

<?php
date_default_timezone_set('America/New_York');
echo "The time is ".date('Hi')."\n";
$closingTime = "12:15";
echo "The store closes at ".$closingTime."\n";
if (strtotime(date('Hi')) < strtotime($closingTime)) echo "it is still open\n";
else echo "the store is closed\n";
?>

样本输出:

The time is 1225
The store closes at 12:15
the store is closed
于 2013-07-04T16:17:56.927 回答
0

我倾向于做类似的事情:

$now = new DateTime();
$closing = new DateTime('19:30');

if ($now < $closing) // not closed

我认为您不必担心商店在凌晨关闭。

于 2013-07-04T16:37:07.347 回答