2017-03-04 52 views
0

我在switch語句內部有一個代碼,用於檢查輸入的時間是否在下午2點或之前。如果是,它會繼續循環,如果不是,它會跳過它所在的循環(switch語句在foreach循環中)。這是我當前的代碼:檢查時間是否在下午2點或之前的代碼PHP

case '3370': 
      $dateTime = DateTime::createFromFormat('Y-m-d\TH:i:sO', $_SESSION["apptTime"]); 
    $timestamp = $dateTime->getTimestamp(); 
    $time = date('H', $timestamp); 
    if($time <= 14){ 
     $addonimage = 'https://mywebsite.com/image.png'; 
     break; 

    }else{ 
     continue 2; 
} 

該代碼適用於絕大多數情況,除非選擇的時間爲2pm。我希望它創建​​,但是它會轉到continue 2。我怎樣才能做到這一點?

更新:

OK,所以我做了一個小故障,我發現了正在傳遞的時間不15,它應該是14.這是一個採樣時間被傳遞到函數:2017-03-11T14:00:00-0800。有誰知道爲什麼它通過15而不是14?

+0

您需要查看cron作業。這與PHP和更多選擇的操作系統無關。基本上你可以通過命令行設置一個執行PHP腳本的cron作業。沒有提到你的操作系統,你不可能得到正確的答案。 – Doug

+1

嘿@Doug語法修正。它的'cron'不是chron –

+0

@Doug謝謝你的回答,但我不想在特定時間運行腳本。該腳本檢查時間並根據輸入的時間,包括'$ addonimage'或不包含。雖然我確實得到了誤會。我重新改寫了標題,以便更準確地瞭解我正在尋找的內容。 –

回答

0

好的,我確實發現了一些可行的方法。而不是使用date函數,我只是使用DateTime函數。這裏是我現在有:

$dateTime = DateTime::createFromFormat('Y-m-d\TH:i:sO', $_SESSION["apptTime"]); 
    $timestamp = $dateTime->format('H'); 
    if(intval($timestamp) <= 14){ 

這正是我想要它做的。謝謝你們每一個人的幫助!

相關問題