简化日期:日月份的下拉表格输入

时间:2013-04-26 17:06:29

标签: php html forms html-select

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

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

3 个答案:

答案 0 :(得分: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'));

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:-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/)。