创建一个PHP输入表单到POST
日期到SQL查询,在服务器端我们有0000-00-00
日期格式但在本地我们使用00/00/0000
格式,如何获取输入表单接受要在SQL查询中使用的00/00/0000
格式?到目前为止,我们强制用户放置0000-00-00
并且它运行良好,但很多人都抱怨这个!
<form action="index.php" method="POST">
<cust>From: </cust><input name="start_date" placeholder=" 0000-00-00" />
<cust>Until: </cust><input name="end_date" placeholder=" 0000-00-00" />
<select name="RegioSelect" placeholder="Choose"><option></option>
<?php
$region = $_POST["RegioSelect"];
$fdate = $_POST["start_date"];
$edate = $_POST["end_date"];
if(empty($fdate)){
$fdate = '2000-01-01';
} else {
$fdate;
}
if(empty($edate)){
$edate = date("Y/m/d");
} else {
$edate;
}
我们考虑在服务器端进行转换,但在这种情况下,我们无法使用日期来比较日期范围。我们在检索到用户信息后转换它们,如下所示:
$new_fdate = strtotime($fdate);
$FiDate = date('d/m/Y',$new_fdate);
changed '$edate' to date("Y-m-d");
$new_edate = strtotime($edate);
$EnDate = date('d/m/Y',$new_edate);
?>
<input type="submit" value="Select region">
</select></br>
</form>
<?php
if(empty($region)){
$region = ' ';
} else {?><h4><?php echo $region; ?></h4><cust><b>From:</b><?php echo $FiDate; ?> <b>Until:</b> <?php echo $EnDate; ?></cust>
<?php
}
?>
答案 0 :(得分:0)
解决方法如下,现在它可以在其他方面工作,输入表单接受00/00/0000
日期格式,但一旦POSTED
转换为服务器端。
<form action="list.php" method="POST">
<cust>From: </cust><input name="start_date" placeholder=" 00/00/0000" />
<cust>Until: </cust><input name="end_date" placeholder=" 00/00/0000" />
<select name="RegioSelect" placeholder="Choose"><option></option>
<?php
$region = $_POST["RegioSelect"];
//ORIGINAL VARIABLES
/*$fdate = $_POST["start_date"];
$edate = $_POST["end_date"];
*/
$fdate = date_format(date_create_from_format('d/m/Y', $_POST["start_date"]), 'Y-m-d');
$edate = date_format(date_create_from_format('d/m/Y', $_POST["end_date"]), 'Y-m-d');
if(empty($fdate)){
$fdate = '01/01/2000';
} else {
$fdate;
}
if(empty($edate)){
$edate = date("Y/m/d");
} else {
$edate;
}
因此,代码会告诉查询选择$fdate
和$edate
之间的所有数据,如果$fdate
为空则将01/01/2000
作为第一个日期,如果$edate
是空的TODAY()
作为结束日期。