我有一个循环,可以在表单中显示月份。
我想以两种不同的格式显示月份:
- 像这样两位数:01, 02, 03...
- 像这样的纯文本: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>';
最佳答案
以两位数输出月份
您有两个主要选择:
str_pad()
- 参见 PHP documentation heresprintf()
- 参见 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/