我正在寻找一种方法,让访问我网站的人通过HTML表单输入一个日期,然后使用php从他们输入的日期中减去或加上时间。例如,在表单中,他们将输入他们的生日,我希望php在他们生日后5天发出回声。我已经研究了很多在php中添加日期的方法,所以我认为这不会是一个问题。我只是不知道如何让php将表单输入识别为日期。
这是我选择日期的HTML代码:
<select name="DMonth" input type="number">
<option>- Select Month -</option>
<option value=1>January</option>
<option value=2>February</option>
...
<option value=12>December</option>
</select>
<select name="DDay" input type="number">
<option>- Select Day -</option>
<option value=1>1</option>
<option value=2>2</option>
...
<option value=31>31</option>
</select>
<select name="DYear" input type="number">
<option>- Select Year -</option>
<option value=2013>2013</option>
<option value=2014>2014</option>
...
<option value=2022>2022</option>
</select><br>
<select name="DHour" input type="number">
<option>- Select Hour -</option>
<option value=00>12 a.m.</option>
<option value=01>1 a.m.</option>
<option value=02>2 a.m.</option>
<option value=03>3 a.m.</option>
<option value=04>4 a.m.</option>
<option value=05>5 a.m.</option>
<option value=06>6 a.m.</option>
<option value=07>7 a.m.</option>
<option value=08>8 a.m.</option>
<option value=09>9 a.m.</option>
<option value=10>10 a.m.</option>
<option value=11>11 a.m.</option>
<option value=12>12 p.m.</option>
<option value=13>1 p.m.</option>
<option value=14>2 p.m.</option>
<option value=15>3 p.m.</option>
<option value=16>4 p.m.</option>
<option value=17>5 p.m.</option>
<option value=18>6 p.m.</option>
<option value=19>7 p.m.</option>
<option value=20>8 p.m.</option>
<option value=21>9 p.m.</option>
<option value=22>10 p.m.</option>
<option value=23>11 p.m.</option>
</select>
<select name="DMin" input type="number">
<option>- Select Minute -</option>
<option value=0>00</option>
<option value=15>15</option>
<option value=30>30</option>
<option value=45>45</option>
</select>
这就是我想在php中使用的
$DMonth=$_POST["DMonth"];
$DDay=$_POST["DDAY"];
$DYear=$_POST["DYear"];
$DHour=$_POST["DHour"];
$DMin=$_POST["DMin"];
$Bday = date_create($DYear.'-'.$DMonth.'-'.$DDay.' '.$DHour.':'.$DMin.':00');
echo date_format($Bday, 'Y-m-d H:i:s');
但当我运行表单时,它唯一能发出回声的是当前日期和时间。
最佳答案
我几小时几分钟都没看到你的密码
这有点复杂,因为它是你的代码的一个插件,但会做到这一点。
$DMonth=$_POST["DMonth"];
$DDay=$_POST["DDAY"];
$DYear=$_POST["DYear"];
$DHour=$_POST["DHour"];
$DMin=$_POST["DMin"];
$Bday = date_create($DYear.'-'.$DMonth.'-'.$DDay.' '.$DHour.':'.$DMin.':00');
echo date_format($Bday, 'Y-m-d H:i:s');
$datetime = new DateTime(date_format($Bday, 'Y-m-d H:i:s'));
$datetime->modify('+5 days');
echo $datetime->format('Y-m-d H:i:s');
更简单的版本
$datetime = DateTime::createFromFormat('Y-n-j H:i', $DYear.'-'.$DMonth.'-'.$DDay.' '.$DHour.':'.$DMin);
echo $datetime->format('Y-m-d H:i:s'); // Birthday
$datetime->modify('+5 days');
echo $datetime->format('Y-m-d H:i:s'); // 5 days later
关于php - 将HTML表单输入转换为php理解的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15714053/