嗨,我是Symfony和Twig的新人,所以我有一个问题:
我怎样才能在树枝上创造这样的东西?
for ($i = 0; $ <10; $i++) {
//do something
}
我的问题是,我必须在5分钟内填充一小时选项,例如:
<option> 00:05 </option>
<option> 00:10 </option>
<option> 00:15 </option>
<option> 00:20 </option>
到达60分钟时加1小时......
感谢您的建议......
答案 0 :(得分:0)
在Twig中,您可以创建变量(甚至是数组)。在这种情况下,您可能需要创建一个字符串数组,然后像下面一样循环遍历它。请注意,这只是一种非常基本的方法。
<label for="split-time">Please choose a 5-Minute Split Time:</label><br />
<select id="split-time">
{% set minutes = ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"] %}
{% for split in minutes %}
<option value="00:{{ split }}">00:{{ split }}</option>
{% endfor %}
</select>
另一方面,您可能只想在控制器中进行一些准备工作,如下所示。假设你的Action是timeAction();你可以在时间动作中做到这一点:
public function timeAction() {
// GENERATE THE TIME INDICES:
$timeIndices = array();
for($i=0; $i < 60; $i+=5){
$val = $i;
if($i < 10){
$val = "0" . $i;
}
$timeIndices[] = $val;
}
return $this->render('YourBundle:ControllerName:time.html.twig', array(
'timeIndices' => $timeIndices
));
}
然后在Twig,你可以做到:
<label for="split-time">Please choose a 5-Minute Split Time:</label><br />
<select id="split-time">
{% for timeIndex in timeIndices %}
<option value="00:{{ timeIndex }}">00:{{ timeIndex }}</option>
{% endfor %}
</select>
答案 1 :(得分:-1)
最简单的方法是:
{% for minutes in range(0, 24 * 60 - 1, 5) %}
<option>{{ (minutes * 60)|date('H:i', false) }}</option>
{% endfor %}
您可以根据需要更改输出格式。例如,如果您需要步长为15分钟并显示“ am / pm”,则可以使用以下变体:
{% for minutes in range(0, 24 * 60 - 1, 15) %}
<option>{{ (minutes * 60)|date('h:i a', false) }}</option>
{% endfor %}
因此,您将获得以下选项:
<option>12:00 am</option>
<option>12:15 am</option>
<option>12:35 am</option>
这是一个非常灵活和容易的解决方案。
此外,您可以在几秒钟(或几分钟)内作为选项的值,如下所示:
{% for minutes in range(0, 24 * 60 - 1, 5) %}
<option value="{{ minutes * 60 }}">{{ (minutes * 60)|date('H:i', false) }}</option>
{% endfor %}
答案 2 :(得分:-2)
我就是这样做的。
<select name="time">
{% set i = 0 %}
{% for j in 0..12 %}
<option value={{ i }} >{{ i }}</option>
{% set i = i + 5 %}
{% endfor %}
</select>
根据您的要求调整编号。