0

我要拔头发了人们。我有一个表格,人们从下拉菜单中选择一天和一个月,当前年份会自动连接起来。

在服务器上我有这个:

$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

就好像它只看第一个数字..任何想法将不胜感激!

4

2 回答 2

2

你的问题是你的“月份”变量是一个字符串而不是一个整数,但是你把它放在日期中就好像它是一个整数一样? 2013-April-5...尝试只输入 a4而不是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; ?>

我认为这会奏效。

于 2013-09-07T01:43:50.583 回答
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;
?>
于 2013-09-07T01:54:34.307 回答