日期方法的“半小时”间隔

时间:2013-07-04 16:12:06

标签: php date

这似乎是一个基本问题,我不知道之前是否曾被问过:

我在脚本中有这个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 个答案:

答案 0 :(得分:2)

您可以使用strtotime()

date("Hi", strtotime("18:40"));

答案 1 :(得分:1)

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

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

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

最简单的方法是使用strtotime.

答案 2 :(得分: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

答案 3 :(得分:0)

我倾向于做类似的事情:

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

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

我认为您不必担心商店在上午早些时候关门。