我要把头发拉出来。我有一个表单,人们从下拉菜单中选择一天一个月,当前年份将自动连接。
在服务器上我有这个:
$received = date("Y")."-".$_POST['month']."-".$_POST['day'];
$date = strtotime($received);
$newformat = date('Y F j',$date);
echo $newformat;
我们说$_POST['month'] == 'April'
和$_POST['day'] == '5'
输出总是这样:
2013 April 1
(即当天默认为1)。
有趣的是,如果$_POST['day'] == '24'
则输出为:
2013 April 2
就好像它只是看第一个数字..任何想法都会非常感激!
答案 0 :(得分:2)
你的问题是你的“月”变量是一个字符串而不是一个整数,但你把它放在日期中,好像它是一个整数? 2013-April-5
...尝试添加4
代替April
。
<强>更新强>
要回答您的问题,您可以让您的客户更新以获得<option value="1">January</option>
等选项,或者更新您的PHP以便像以下一样处理:
<? $received = $_POST['month']." ".$_POST['day']." ".date("Y");
$date = strtotime($received);
$newformat = date('Y F j',$date);
echo $newformat; ?>
我认为这样可行。
答案 1 :(得分:1)
问题可能出在您的处理程序和/或表单中(没有在您的问题中看到完整的代码)。
我测试了它,我得到了完美的结果。
当我在下面构建的表单中输入5
一个月和24
一天时,我会回来2013 May 24
。
检查表单和处理程序中的语法。
在使用以下表单和处理程序时,我得到了完美的结果
HTML表单
<form action="date_handler.php" method="post">
Month: <input type="text" name="month">
<br>
Day: <input type="text" name="day">
<br>
<input type="submit" name="submit" value="Submit">
</form>
PHP处理程序
<?php
$month=$_POST['month'];
$day=$_POST['day'];
$received = date("Y")."-".$_POST['month']."-".$_POST['day'];
$date = strtotime($received);
$newformat = date('Y F j',$date);
echo $newformat;
?>