$currentTime = date("Hi");
if($currentTime > 0559 && $currentTime < 1401) {
// Stuff here
}
這是我當前的代碼,但if語句似乎在午夜後的任何時間運行,而不是在0600(當地時間上午6:00)之後運行。任何想法會造成這種情況。如何解釋if/else PHP語句中的時間?
$currentTime = date("Hi");
if($currentTime > 0559 && $currentTime < 1401) {
// Stuff here
}
這是我當前的代碼,但if語句似乎在午夜後的任何時間運行,而不是在0600(當地時間上午6:00)之後運行。任何想法會造成這種情況。如何解釋if/else PHP語句中的時間?
在(if($currentTime > 0559)
- 0559
將被視爲octal
,因爲之前的0
。
只需拆除,在比較if($currentTime > 559)
太好了。謝謝!我知道這將是一件愚蠢的事情。 – 2013-04-30 17:31:36
確保您使用的整數。
$currentTime = intval(date("Hi"));
if ($currentTime > 559 && $currentTime < 1401) {
// Stuff here
}
您正在使用的是什麼,你認爲你正在使用其他方式的整數,請integer
文檔here
例如
$a = 0123; // octal number (equivalent to 83 decimal)
讓我們回到你的代碼,修正它只是在您的整數之前刪除0
,因此它不會被解釋爲octal
,只需更改爲
if(($currentTime > 559) && ($currentTime < 1401)) {
// Stuff here
}
如果你用'0'開始一個整數字面值,它會被解釋爲八進制。 – 2013-04-30 17:27:38
但自date()返回一個字符串,你可以使用$ currentTime>'0559',它應該工作... – jcorry 2013-04-30 17:29:52
有趣的是,'0559'實際上等於'45':'9'被拋出,作爲這個數字顯然不能用於十進制數字。所以,確切地說,劇本在00:45以後的任何時候都可以工作,而不是在午夜之後的任何時候。 ) – raina77ow 2013-04-30 17:30:04