2012-11-05 81 views
8

是否可以通过服务器时间在EE中触发条件?基于时间的条件

{if servertime == 'midnight to 13:00'} 
     do this 
{if:else} 
     do something else 
{/if} 

谢谢

回答

7

当然,您可以使用基本条件的全局变量{current_time}。以您的示例为例,我们将查看午夜到13:00之间的时间:

{if 
    '{current_time format="%H%i"}' >= '0000' AND 
    '{current_time format="%H%i"}' <= '1300' 
} 
    It's between 00:00 and 13:00 
{if:else} 
    It isn't. 
{/if} 
+0

太好了。谢谢。 – KSPR

1

您还需要观看DST设置。解决这个问题的一个方法是使用FocusLab的主配置来修复它,以便自动处理DST。

3

只是为了重申Jean说的话 - 如果你正在做这样的事情,你需要确保你的DST(日光节约)被适当配置。

如果你不使用FocusLab配置 - 刚落,下面进入你的config.php文件(系统/ expressionengine /配置/)

$config['daylight_savings'] = ((bool) date('I')) ? 'y' : 'n'; 

这会为你动态排序。

+0

对不起,我不太明白这一点。这是否自动执行EE的DST设置? – KSPR

+0

是的 - 这会自动为你设置,这意味着你不必担心它。 – madebyhippo