【问题标题】:generate month leading with zero php生成零 php 的月份
【发布时间】:2013-04-13 04:47:00
【问题描述】:

如何生成带有零的月份,例如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

【问题讨论】:

    标签: php generator


    【解决方案1】:

    使用sprintf

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

    在你的 sn-p 中

    <?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】:

      如何使用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

      【讨论】:

        【解决方案3】:
        <?php for($m = 1;$m <= 12; $m++){ $month =  date("F", mktime(0, 0, 0, $m)); if ($month < 10) $month = "0".$month; ?>
        

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • 感谢它的帮助,但稍作修正 :)
          • @nadysaptra:好的。这只是一个逻辑。你想去哪里都可以申请。欢迎
          【解决方案5】:

          试试

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

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

          【讨论】:

            【解决方案6】:

            短而快:(sprintf 很贵)

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

            【讨论】:

              猜你喜欢
              • 2012-01-08
              • 1970-01-01
              • 2021-03-24
              • 2019-09-06
              • 1970-01-01
              • 1970-01-01
              • 2020-03-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多