2017-06-22 45 views
0

首先我不是php的專家。如何根據時間更改php腳本值?

我有一個url重定向腳本。 它通過從.txt數據庫中提取鏈接來工作 我想根據時間調整數據庫。 例如,從上午6點運行「db1.txt」到下午1點59分,運行「db2.txt」,從下午2點運行到上午5:59。

重定向腳本具有以下行來解決數據庫問題。

$db = 'db.txt'; 

以下沒有工作

$time = date("H:i", strtotime("$time")); 
echo $time; 
if ($time >= 6 && $hour <= 14) 
{ 
$db = db1.txt; 
} 
else 
{ 
$db = db2.txt;} 

回答

1

既然你只檢查小時就不需要:idate()。檢查Docs找出所有date()參數。

此外,由於缺少引號,您將在$db = db1.txt;$db = db2.txt;處收到語法錯誤。

strtotime("$time")對我來說看起來不對。我猜你想用time()

更改代碼,這樣當前的時間戳:

$time = date("H", time()); 
echo $time; 

if ($time >= 6 && $time <= 14) 
{ 
    $db = 'db1.txt'; 
} 
else 
{ 
    $db = 'db2.txt'; 
} 
+0

感謝您的回覆。 「echo $ time」;在過去的3-4小時內一直顯示「18」!任何想法爲什麼? –

+0

對不起,現在查看我的代碼 – modsfabio

+0

您的瀏覽器是否緩存顯示18? –

1

如果你只是使用的時候,你可以很容易地用文件中的一行與三元運算符定義!

如果您可以將當前服務器時間:

$db = (date('H') >= 6 && date('H') < 14) ? 'db1.txt' : 'db2.txt'; 

或者,如果你可以定義時間:

$defineDate = date('H', strtotime($myTime)); 
$db = ($defineDate >= 6 && defineDate < 14) ? 'db1.txt' : 'db2.txt'; 

不要忘記使用正確條件:

($defineDate >= 6 && defineDate < 14) // To 6 to 13:59:59 
($defineDate >= 6 && defineDate <= 14) // To 6 to 14:00:00 

官方PHP文檔: - PHP Date function - PHP Strtotime function - PHP Ternary operator