php - 在 PHP 中显示带有两位数和月份名称的月份

标签 php html

我有一个循环,可以在表单中显示月份。

我想以两种不同的格式显示月份:

  1. 像这样两位数:01, 02, 03...
  2. 像这样的纯文本:January, February...

就像这样:

<option value="01">January</option>
<!-- ... -->
<option value="12">December</option>

问题是,我无法显示它。

到目前为止,这是我的代码:

echo '<select name="month">';

for ($x=1; $x<=12; $x++)
{
    $val=strlen($x);

    if($val==1)
    {
        echo '<option value="'.'0'.$x.'">'.'0'.$x.'</option>';
    } else {
        echo '<option value="'.$x.'">'.$x.'</option>';
}
}

echo '</select>';

最佳答案

以两位数输出月份

您有两个主要选择:

  1. str_pad() - 参见 PHP documentation here
  2. sprintf() - 参见 PHP documentation there

你会像那样使用这两个,假设 $x 是你的数字月份(1、2、3...):

// with str_pad()
$month = str_pad($x, 2, "0", STR_PAD_LEFT);

// with sprintf()
$month = sprintf('%02d', $x);

将月份输出为名称

对于文字月份部分,您可以使用 DateTime 类 ( see PHP doc )。

$date = DateTime::createFromFormat('!m', $x);
$monthName = $date->format('F');

两人一起运行

在你的情况下,使用 str_pad() 是这样的:

for ($x = 1; $x <= 12; $x++)
{
    $month = str_pad($x, 2, "0", STR_PAD_LEFT);

    $date = DateTime::createFromFormat('!m', $x);
    $monthName = $date->format('F');

    echo '<option value="'.$month.'">'.$monthName.'</option>';
}

关于php - 在 PHP 中显示带有两位数和月份名称的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21540705/

相关文章:

php - 加水印后照片颜色丢失

php - 从复选框中获取值 - 将其发送到表单(隐藏字段)

php - 从 Paypal IPN 获取结果的问题

javascript - 如何使用 jQuery 在每个文本框下方显示验证消息?

php - 动态表输出 - 每个字段在继续之前出现两次

php - 无法使用 INSERT INTO 向 mysql 表中插入数据

javascript - 在 'Visual' 和 'Text' 之间切换时,如何使 Wordpress 编辑器 (TinyMCE) 保留 HTML 格式?

javascript - 鼠标移动绘制圆圈后保存并恢复 Canvas 矩形

html - 当只有 1 条时,Chart.js 无法正常绘制线条

html - JSF 特立尼达 tr :table css issue