【发布时间】:2013-06-23 06:53:08
【问题描述】:
我正在尝试从 mySQL 数据库中获取完整的日期(格式为 YYYY-MM-DD),并让 PHP 将 2 位月份数字转换为 3 位字母表示,并将其放入选择框中以供用户编辑,当用户选择月份时,它需要作为 2 位数的月份编号返回。下面的代码很好用,除了由于某种原因 08 以 08 而不是 AUG 的形式返回给用户,9 月也会发生同样的情况,但是所有其他月份都按照我的意愿行事。您认为这是 PHP 本身的故障吗?我很确定我在这里没有错过任何东西。 提前致谢!
$endmonth = (substr($record['twpEndDate'], -5, 2));
$endmonthnumber = (substr($record['twpEndDate'], -5, 2));
if ($endmonth==00) {$endmonth=''; $endmonthnumber='';}
else
if ($endmonth==01) {$endmonth='JAN'; $endmonthnumber='01';}
else
if ($endmonth==02) {$endmonth='FEB'; $endmonthnumber='02';}
else
if ($endmonth==03) {$endmonth='MAR'; $endmonthnumber='03';}
else
if ($endmonth==04) {$endmonth='APR'; $endmonthnumber='04';}
else
if ($endmonth==05) {$endmonth='MAY'; $endmonthnumber='05';}
else
if ($endmonth==06) {$endmonth='JUN'; $endmonthnumber='06';}
else
if ($endmonth==07) {$endmonth='JUL'; $endmonthnumber='07';}
else
if ($endmonth==08) {$endmonth='AUG'; $endmonthnumber='08';}
else
if ($endmonth==09) {$endmonth='SEP'; $endmonthnumber='09';}
else
if ($endmonth==10) {$endmonth='OCT'; $endmonthnumber='10';}
else
if ($endmonth==11) {$endmonth='NOV'; $endmonthnumber='11';}
else
if ($endmonth==12) {$endmonth='DEC'; $endmonthnumber='12';}
echo "
<select name='twpEndMonth'>
<option value=" .$endmonthnumber. " style='display:none; selected'>" .$endmonth. "</option>
<option value='01'>JAN</option>
<option value='02'>FEB</option>
<option value='03'>MAR</option>
<option value='04'>APR</option>
<option value='05'>MAY</option>
<option value='06'>JUN</option>
<option value='07'>JUL</option>
<option value='08'>AUG</option>
<option value='09'>SEP</option>
<option value='10'>OCT</option>
<option value='11'>NOV</option>
<option value='12'>DEC</option>
</select>";
【问题讨论】:
-
您要查找的搜索词是“八进制”。
-
简短版本是:“不要在数字中使用前导零”。
-
为什么它会在 1 月到 7 月的几个月内有效,而不是 8 月和 9 月?
-
仅在 y 次中有效... PHP 开发人员... thedailywtf.com/Articles/God-Date-Mangling-101.aspx
-
好的,所以我最好不要使用前导零,然后将其重新添加到表单处理器中?
标签: php