PHP日期输入格式

时间:2017-07-18 14:52:58

标签: php sql-server date format

创建一个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
}
?>

1 个答案:

答案 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()作为结束日期。

相关问题