2

我怎样才能生成带零的月份,比如01-12.

这是我的代码:

<?php for($m = 1;$m <= 12; $m++){ $month =  date("F", mktime(0, 0, 0, $m));?>                               
<li><a href="<?php echo site_url('agenda/'.$tgl[0].'/'.$m);?>"><?php echo $month;?></a></li><?php } ?>  

输出 url 仍然是1-12. 我希望它显示为01-12.

4

6 回答 6

3

利用sprintf

<?php echo sprintf('%02d', $month); ?>

在你的片段中

<?php for($m = 1;$m <= 12; $m++): ?>    
    <li>
        <a href="<?php echo site_url("agenda/${tgl[0]}/" . sprintf('%02d', $m)); ?>">
            <?php echo date("F", mktime(0, 0, 0, $m)); ?>
        </a>
    </li>
<?php endfor; ?>
于 2013-04-13T04:52:53.693 回答
2

如何使用str_pad 它将用字符'0'填充字符串到长度为2。

<?php 
for($m = 1;$m <= 12; $m++) { 
  $month = str_pad($m, 2, '0', STR_PAD_LEFT);
}
?>

http://php.net/manual/en/function.str-pad.php

于 2013-04-13T06:46:21.567 回答
0
<?php for($m = 1;$m <= 12; $m++){ $month =  date("F", mktime(0, 0, 0, $m)); if ($month < 10) $month = "0".$month; ?>
于 2013-04-13T04:49:46.073 回答
0

使用sprintf()你可以实现这种格式,

<?php echo sprintf("%02d",$month); ?>
于 2013-04-13T04:51:38.997 回答
0

尝试

$month = date('m',mktime(0, 0, 0, $m));  //HERE give 'm' option       

" m " 月份的数字表示,前导零从 01 到 12

于 2013-04-13T04:52:22.630 回答
0

短而快:(sprintf 很贵)

    $month = ($m = date('m')) < 10 ? '0' . $m : $m;
于 2021-12-31T10:56:19.997 回答