2017-06-22 46 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