0

所以这是我从这样的选择标签中从用户那里得到日期的东西:

<select>

<?php

  for($i=date('m'); $i>=0; $i--){

 echo "<option>".$i."</option>";

 }

  ?>

</select>

现在这样做是将 05 作为第一个选项 4,3,2,1 作为下一个选项,我希望 04,03,02,01 作为所有选项。

我怎样才能做到这一点?

此外,我正在运行一个通过匹配日期删除行的 sql 查询。

因此用户选择的日期为2013-5-18(不为零),但数据库中的日期为2013-05-18(零),因此日期不匹配,查询无法删除该行。

我还可以更改日期在数据库中的存储方式吗?

我将日期存储为2013-5-18(不为零),它会自动将存储存储为2013-05-18(零)。

任何其他可以帮助我匹配日期以便我可以运行删除查询的东西?

4

1 回答 1

0

尝试:

echo "< option>".sprintf("%02d", $i)."< /option>";

sprintf将在需要时将您的号码格式化为前面的 0。

您看到的是date('m')正确返回第一个月的值 05 。但是,当您将 1 添加到它 ( $i++) 时,它会被转换为整数,因此下一个值为 6。我可能会假设您的实际代码使用$i--,因为这目前看起来很像无限循环。

您可能还考虑在构建查询时而不是在表单呈现时处理格式。$month = sprintf("%02d", $_POST['month']);而不是依靠客户端很好地传递它。

于 2013-05-18T13:36:40.577 回答