显示前导零

时间:2015-06-11 01:51:22

标签: coldfusion

我正在尝试分钟下拉。如何以01, 02, 03, 04, 05, 06, 07 08, 09, 10, 11, 12等形式出现?现在,前9个数字只出现1, 2, 3, 4, 5, 6, 7, 8, 9

<select id="minutes">
  <cfloop from="1" to="60" index="m">
    <option>#m#</option>
  </cfloop>
</select>

好吧,我理解为什么它正在做它正在做的事情并且无论如何都在期待它。哈哈。只是想知道是否有办法让0出现而无需手动创建01-09选项。

2 个答案:

答案 0 :(得分:14)

您可以使用numberFormat

<select id="minutes">
    <cfoutput>
        <cfloop from="1" to="60" index="m">
            <option>#numberFormat(m,'00')#</option>
        </cfloop>
    </cfoutput>
</select>

请参阅runnable example上的trycf.com

答案 1 :(得分:1)

我可以想到两个选项:

选项1 - cfloop over timepan

创建开始和结束时间,并使用cfloop,步长值为1分钟(来源:adobe docs

<cfset startTime = CreateTime(0,0,0)>
<cfset endTime = CreateTime(0,59,59)>
<select id="minutes">
  <cfoutput>
    <cfloop from="#startTime#" to="#endtime#" index="m" step="#CreateTimeSpan(0,0,1,0)#">
      <option>#TimeFormat(m, 'mm')#</option>
    </cfloop>
  </cfoutput>
</select>

选项2 - 使用RIGHT()

只需将0添加到所有值,然后选择正确的两个字符:

<select id="minutes">
  <cfoutput>
    <cfloop from="0" to="59" index="m">
        <option>#Right(0 & m, 2)#</option>
    </cfloop>
  </cfoutput>
</select>