我希望PHP检查它是否是上午8:30,如果是,我希望它更改变量。 我试过了,
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam )){
$refresh = true;
}
但布尔值没有改变。知道我做错了吗?
答案 0 :(得分:3)
strtotime
depends on the time zone.. so you should define timezone too.
You should set your default timezone before comparing.
示例:
date_default_timezone_set('America/Los_Angeles');
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam )){
$refresh = true;
}
答案 1 :(得分:2)
在php中我们有new DateTime
函数。因此,您可以使用它来匹配您的日期,如下例所示
$refresh = false;
$eightthirtyam = "08:30:00";
$date = new DateTime();
if($date->format('H:i:s') == $eightthirtyam)
{
$refresh = true;
}
这是一个例子
$refresh = "false";
$eightthirtyam = "08:30:00";
$date = new DateTime("2017-06-07 8:30:00"); // suppose your system current time is this.
if($date->format('H:i:s') == $eightthirtyam)
{
$refresh = "true";
}
echo $refresh;
您可以通过在线php编辑器http://www.writephponline.com/
尝试以上示例,我认为这可能会对您有所帮助。
答案 2 :(得分:1)
函数time()
始终返回与时区无关的时间戳(= UTC),而strtotime()
给出本地时间,因此存在时区偏移。
您需要在比较前从当地时间减去时区偏移量,并检查live demo以便更好地理解。
答案 3 :(得分:0)
这将对您有所帮助:
date_default_timezone_set('Asia/Kolkata');
$eightthirtyam = "08:30:00";
$refresh = false;
if(strtotime(date('H:i:s') == strtotime($eightthirtyam )){
$refresh = true;
}
参考: - / strtotime
答案 4 :(得分:0)
$hr= date('H:i');
if(strtotime($hr)==strtotime(08:30) ){
$refresh = true;
}
请尝试这种方式。它适用于你的情况。
答案 5 :(得分:-1)
代码很好,直到我知道。但是如果你想做一些动作,你可以做这样的事情。
$refresh=false;
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam ))
{
$refresh = true;
}
if($refresh)
{
//your statement is true do something here
}
else
{
//false statement
}