0
創建一個PHP輸入形式POST
日期,SQL查詢,在服務器端,我們有0000-00-00
日期格式,但在本地,我們使用00/00/0000
格式,怎樣才能把輸入表單來接受00/00/0000
格式使用在SQL查詢中?現在我們強迫用戶把0000-00-00
,它完美的作品,但很多人都抱怨這一點!PHP日期輸入格式
<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
}
?>
立即將表單值轉換爲ISO 8601'YYYY-MM-DD'並驗證其有效性。同樣,在爲用戶呈現數據時,請使用他們的* locale特定的*設置,該設置可能是也可能不是'YYYY/MM/DD'或其他全部內容。通常最好假定客戶端有一些任意格式,可以表示爲適合'strptime' /'strftime'的字符串,並且服務器*必須*使用'YYYY-MM-DD'來保持一致性。 – tadman
儘可能使用PHP的[DateTime](http://php.net/manual/en/class.datetime.php)類可能會更容易。它有一個'createFromFormat'初始化方法,可以接受用戶輸入以及使用的格式('d/m/Y','Y-m-d'等)。當再次顯示時,您可以使用'format'方法輸出它。 – iainn