生成带前导零的月份(PHP)

3
我应该如何生成以零开头的月份,例如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

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; ?>

2

1

简短快速:(sprintf很耗费资源)

    $month = ($m = date('m')) < 10 ? '0' . $m : $m;

0
使用 sprintf() 函数,你可以实现这种格式。
<?php echo sprintf("%02d",$month); ?>

谢谢,这很有帮助,但需要做个小修正 <?php echo sprintf('%02d', $m); ?> :) - undefined
@nadysaptra:好的,这只是一个逻辑。无论你想在哪里应用,都可以随意使用。欢迎使用。 - undefined
echo sprintf()是一种“反模式”。绝对没有任何理由让任何人在任何代码中写echo sprintf(),每次都应该使用不带echoprintf() - undefined

0

尝试使用

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

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

0
<?php for($m = 1;$m <= 12; $m++){ $month =  date("F", mktime(0, 0, 0, $m)); if ($month < 10) $month = "0".$month; ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接