8

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

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

谢谢

4

4 回答 4

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}
于 2012-11-05T10:04:11.717 回答
4

如果您不反对在模板中使用一点 php,那么用户指南有一个基本示例可以帮助您:http ://expressionengine.com/user_guide/modules/channel/channel_entries.html#start-on

还有这个插件http://devot-ee.com/add-ons/cc-time-difference可能会派上用场。

于 2012-11-05T08:56:06.367 回答
3

重申一下 Jean 所说的 - 如果您正在做这样的事情,您需要确保您的 DST(夏令时)配置正确。

如果您不使用 FocusLab Config - 只需将以下内容放入您的 config.php(在 system/expressionengine/config/ 中)

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

这将为您动态排序。

于 2012-11-06T09:38:47.150 回答
1

您还需要注意 DST 设置。解决此问题的一种方法是使用 FocusLab 的 Master Config 修复它,以便自动处理 DST。

于 2012-11-05T14:57:03.930 回答