Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 日到日转换器_Php_Date_Converter - Fatal编程技术网

Php 日到日转换器

Php 日到日转换器,php,date,converter,Php,Date,Converter,我还看到过其他一些问题,关于如何将日期解析为一周中的某一天,并将日期硬编码到代码中,但是如何从一个发布到自身的表单中执行同样的操作?基本上有两个下拉列表(一个用于月,一个用于日)和一个字段来输入年。我不知道如何将这三个字段放入一个$date中,然后使用echo date('l',strotime($date))以显示它。 我的表格在这里: <body> <form action=<?php echo htmlspecialchars($_SERVER["PHP_SE

我还看到过其他一些问题,关于如何将日期解析为一周中的某一天,并将日期硬编码到代码中,但是如何从一个发布到自身的表单中执行同样的操作?基本上有两个下拉列表(一个用于月,一个用于日)和一个字段来输入年。我不知道如何将这三个字段放入一个$date中,然后使用
echo date('l',strotime($date))以显示它。


我的表格在这里:

<body>
<form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>    method="POST">
<fieldset>
<legend>Date to Day Converter</legend>
Month:<br>
<select name="month">
<option value=01>January</option>
<option value=02>February</option>
<option value=03>March</option>
<option value=04>April</option>
<option value=05>May</option>
<option value=06>June</option>
<option value=07>July</option>
<option value=08>August</option>
<option value=09>September</option>
<option value=10>October</option>
<option value=11>November</option>
<option value=12>December</option>
</select>
<br>
Day:<br>
<select name="day">
<option value=01>01</option>
<option value=02>02</option>
<option value=03>03</option>
<option value=04>04</option>
<option value=05>05</option>
<option value=06>06</option>
<option value=07>07</option>
<option value=08>08</option>
<option value=09>09</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
<option value=13>13</option>
<option value=14>14</option>
<option value=15>15</option>
<option value=16>16</option>
<option value=17>17</option>
<option value=18>18</option>
<option value=19>19</option>
<option value=20>20</option>
<option value=21>21</option>
<option value=22>22</option>
<option value=23>23</option>
<option value=24>24</option>
<option value=25>25</option>
<option value=26>26</option>
<option value=27>27</option>
<option value=28>28</option>
<option value=29>29</option>
<option value=30>30</option>
<option value=31>31</option>
</select>
<br>
Year:<br>
<input type="text" name"year">
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>


首先,您的HTML中有一个bug。以下代码行中缺少一个
=

<input type="text" name"year">
在第一次
if
中,您将会话中的日期设置为“月/日/年”。您没有发布任何“日期”变量,因此第二个
if
将不会执行。第三个
if
也不会执行,因为您只需在会话中设置
date
变量。如果第四个
只是第二个
的副本,出于同样的原因仍然不会执行

最后,$date将包含'month/day/year',php无法解析它,因此它默认为unix纪元,恰好在星期三

您应该将我上面引用的整个代码块更改为如下内容:

$date = $month.'/'.$day.'/'.$year;
$_SESSION['date'] = $date;

现在,您的脚本应该可以按预期工作了

您发布的代码给了您什么?对于我输入的任何日期,它都会告诉我星期三如果您回显
$date
是否正确?不,无论我在表单中输入的日期是什么,当它通过代码的php部分时,回显的$date总是星期三不,这不是我要问的。如果您回送的是
$date
,而不是
date
,那么您提交的是日期吗?是的,我从代码中走出来,回到代码中,意识到我不止一次地对该日期执行了If语句。我修正了它,现在我只需要修正二月不正确的天数和闰年。谢谢你的帮助,有时候只需要第二双眼睛
if(!isset($_SESION['date'])){
        $_SESSION['date'] = 'month'.'/'.'day'.'/'.'year';
}
$date = $_SESSION['date'];
if(isset($_POST['date'])){
        $date= $_POST['date'];
}
if(!isset($_SESION['date'])){
    $_SESSION['date'] = $month.$day.$year;
}
$date = $_SESSION['date'];
if(isset($_POST['date'])){
        $date= $_POST['date'];
}
$date = $month.'/'.$day.'/'.$year;
$_SESSION['date'] = $date;