0

所以我暂时得到了这个脚本:

<select class="n-select" name="heure-event" id="heure-event">
    <option selected="selected"></option>
    <?php
        for ( $heures = 0 ; $heures <= 23 ; $heures++ ){
            for ( $minutes = 0 ; $minutes <= 45 ; $minutes += 15 ){ 
    ?>
    <option value="<?php echo $heures.':'.$minutes;?>:00">
        <?php
            echo $heures.':'.$minutes;
        ?>
    </option>   
    <?php
            }
        }
    ?>                    
</select>

它工作得很好,但小问题:1:15、1:0 等。

我想要:01:15 和 1:00,

一些身体可以帮助我吗?我可能需要检查是否$i然后< 10添加'0.$i'或类似的东西?

4

4 回答 4

5

利用strftime

<?php

$hour = 1;
$minute = 9;

echo strftime('%H:%M', mktime($hour, $minute)); // 01:09
于 2012-09-04T15:43:02.727 回答
3

那只是显示问题。不要存储“格式化”数据,尤其是数字数据。

所以...对于值,存储 1:15,但显示 01:15,通过

value="<?php echo "$heure:$minutes" ?>"><?php echo sprintf('%02d:%02d', $heures, $minutes) ?></option>

sprintf()

于 2012-09-04T15:43:46.243 回答
0
                                <option value="<?php echo sprintf('%02d:%02d', $heures, $minutes) ?>:00"><?php echo sprintf('%02d:%02d', $heures, $minutes) ?></option>
于 2012-09-04T15:58:51.867 回答
-3
$days = array('' => '');
for ($i = 1; $i <= 31; $i++)
{
    $days[$i] = $i;
}

$months = array('' => '');
for ($i = 1; $i <= 12; $i++)
{
    $months[$i] = $i;
}

$hours = array('' => '');
for ($i = 9; $i <= 18; $i++)
{
    $hours[$i] = sprintf('%02d', $i);
}

$mins = array('' => '');
for ($i = 0; $i <= 45; $i += 15)
{
    $mins[$i] = sprintf('%02d', $i);
}

$years = array(2012 => 2012, 2013 => 2013);

编辑:糟糕,完全误解了这个问题,道歉。只需使用sprintf正确格式化数字:

$heures = sprintf('%02d', $heures);
$minutes= sprintf('%02d', $minutes);
<option value="<?php echo $heures.':'.$minutes;?>:00"><?php echo $heures.':'.$minutes;?></option>
于 2012-09-04T15:43:16.487 回答