1

一个月有 29 天以上,我正在使用 select 和 option 创建一个表单。但这意味着我一天需要 31 个选项,一个月需要 12 个选项,一年需要更多选项。

有更好的方法吗?我不是在寻找插件,我正在尝试制作一些整洁的代码来替换一些旧的和混乱的代码。我可以使用 PHP for 循环吗?我该怎么做呢?它会是什么样子(就混合 PHP 和 HTML 变量和函数而言)?

4

3 回答 3

3

这不是执行此操作的最佳方法,但这是您的要求。看:

<select name="d">
    <?php for ($i = 1; $i <= 31; $i++): ?>
        <option value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT) ?>"><?php echo $i ?></option>
    <?php endfor ?>
</select>

<select name="m">
    <?php for ($i = 1; $i <= 12; $i++): ?>
        <option value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT) ?>"><?php echo $i ?></option>
    <?php endfor ?>
</select>

如果您需要计算当前/特定月份的天数,请使用

$current_month = date('m');
$number_of_day_in_month = cal_days_in_month(CAL_GREGORIAN, $current_month , date('Y'));
于 2013-04-26T17:17:33.263 回答
1

如果您使用的是 HTML5,则创建一个<input type="date">. Safari、Opera 和 Chrome 已经支持这种输入类型。在没有日期输入支持的浏览器中,这样的输入会降级为简单的文本字段。

无论如何,您必须在服务器端(在您的情况下为 PHP)实现验证 - 所以文本字段不是悲剧。您也可以在提交表单数据之前使用简单的JavaScript 来验证用户输入。

如果您想要在所有(A 级)浏览器中使用漂亮的日历小部件,则需要使用插件或自己在 JavaScript 中实现它。

于 2013-04-26T17:24:08.293 回答
-2

如果您尝试简单地使用 HTML(无插件),这应该可以帮助您入门:

<select name="Month">
  <option value="January">January</option>
  <option value="February">February</option>
  <option selected value="March">March</option>
</select>
<select name="Day">
  <option value="1">1</option>
  <option value="2">2</option>
  <option selected value="3">3</option>
</select>
<select name="Year">
  <option value="2013">2013</option>
  <option value="2012">2012</option>
  <option selected value="2011">2011</option>
</select>

这是jsfiddle

但我会推荐一个 JavaScript 解决方案,比如 jQuery 的 datepicker ( http://jqueryui.com/datepicker/ )。

于 2013-04-26T17:20:33.230 回答