我希望PHP檢查它是否是上午8:30,如果是,我希望它改變一個變量。 我試過了,如何在PHP中將當前時間與預設時間進行比較?
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam)){
$refresh = true;
}
但布爾不會改變。任何想法我做錯了什麼?
我希望PHP檢查它是否是上午8:30,如果是,我希望它改變一個變量。 我試過了,如何在PHP中將當前時間與預設時間進行比較?
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam)){
$refresh = true;
}
但布爾不會改變。任何想法我做錯了什麼?
strtotime
取決於時區..所以你應該定義時區。 您應該在比較之前設置默認時區。
例子:
date_default_timezone_set('America/Los_Angeles');
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam)){
$refresh = true;
}
該代碼是好的,直到我知道。但如果你想做一些動作,你可以做這樣的事情。
$refresh=false;
$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam))
{
$refresh = true;
}
if($refresh)
{
//your statement is true do something here
}
else
{
//false statement
}
功能time()
總是返回時間戳是時區獨立(= UTC),而strtotime()
給當地的時間,因此,有一個時區偏移。
在比較之前,您需要從當地時間減去時區偏移量,並檢查live demo以獲得很好的理解。
downvote的原因將不勝感激。謝謝。 –
在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/
執行試試上面的例子檢查答案,我認爲這可能會對你有所幫助。
我試過這個,但它仍然不起作用。如果($ date-> format('H:i:s')> = $ eightthirtyam) 或者其他時間必須完全是8:30:00才能測試,但是它仍然不會'運行。 –
@DaveHowson只是檢查和工作正常.. FYI:'新日期時間();'系統的當前日期時間。如果你當前的系統日期時間不是8:30,那麼這會給你$ refresh作爲錯誤的答案。我正在用示例更新我的答案。你可以再次檢查我的答案。 –
這將幫助你:
date_default_timezone_set('Asia/Kolkata');
$eightthirtyam = "08:30:00";
$refresh = false;
if(strtotime(date('H:i:s') == strtotime($eightthirtyam)){
$refresh = true;
}
參考: -/strtotime
$hr= date('H:i');
if(strtotime($hr)==strtotime(08:30) ){
$refresh = true;
}
請試試這個方法。它會在你的情況下工作。
if(date(「H:i」)==「08:30」)... – Ashraf
邏輯似乎沒有任何錯誤。通過'var_dump(time());'和'var_dump(strtotime($ eightthirtyam))檢查''看看爲什麼你的邏輯失敗。這是因爲時區 –