Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;“半小时”;日期间隔法_Php_Date - Fatal编程技术网

Php &引用;“半小时”;日期间隔法

Php &引用;“半小时”;日期间隔法,php,date,Php,Date,这似乎是一个基本问题,我不知道以前是否有人问过: 我有一个脚本中的if语句: if(日期('H')结束){ 基本上,这是一个商业脚本。它与商店何时关门有关。6点、7点等等 变量仅在小时内使用值1-24。但是,有些业务在下午5:30(17:30)、下午6:30(18:30)关闭 18.5的值是否表示下午6:30?如果不是,最简单的输入方法是什么?使用date函数,我可以在其中添加1830的值,它知道我的意思是下午6:30 编辑:这里没有用户输出。脚本只需要知道在一天中的某个时间抛出一个“开关”。您

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

我有一个脚本中的
if
语句:

if(日期('H')<$loc_项目->结束){

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

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

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

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

您可以使用


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

首先,你最好让你的脚本支持所有分钟……因为有些商店可能会在6:45关闭

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


最简单的方法是使用如果希望
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";
?>

我倾向于这样做:

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

if ($now < $closing) // not closed
$now=new DateTime();
$closing=新日期时间('19:30');
如果($now<$closing)//未关闭

我想你不必担心商店在早上关门。

Date H只会返回一个整数,因此17.5代表17:59之前的所有内容。为什么不将
$loc\u item->关门
存储为
17:30
,然后简单地检查
日期('H:I')是否为<$loc\U item->结束
?另外,请参阅我的答案以获得更合适的解决方案。我不理解
日期(“Hi”),
?“Hi”是一个格式字符串。
H
表示小时,
i
表示分钟。哎呀,这一个确实太快了。在您的情况下,您也可以用g:ia替换Hi,以便在AM/PM中获取它format@JoeFrambach哇,真不敢相信我居然没看到。我读的是“你好!”-当然是一个日期字符串!基本上,管理员会在表单中将一个4位数的数字输入数据库。例如,
1830
。只要
php
在看到该值时将其读取为下午6:30,这就是我所需要的。所以如果
closing
属性是
1830
,我做了
if(date('Hi')closing) {
这就是我在比较中所需要的全部吗?您不需要时间字符串中的
。但不确定您是否可以不使用
strottime
转换时间-因为返回的值是一个字符串,我不确定字符串比较是否会保证如果time1if(date('Hi')closing)){
这更有意义吗?将您标记为正确的,因为这最终帮助我实现了它…谢谢!这看起来像是一个简单的版本…并且是正确的假设!
The time is 1225
The store closes at 12:15
the store is closed
$now = new DateTime();
$closing = new DateTime('19:30');

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