2017-05-08 154 views
0

我需要能夠將日期格式從Y/M/D更改爲D/M/Y。包含我查詢的所有數據的數據庫的日期設置爲Y/M/D,而輸入表單的輸入仍然是D/M/Y。從表格中更改日期從Y/M/D到D/M/Y的輸入格式

有沒有人有任何想法我可以如何改變格式?

NB的日期是 'DOB'

這裏是SQL:

$sql="SELECT `country_name`,`gdp`,`population`,Cyclist.name,Cyclist.dob FROM Country JOIN Cyclist ON Country.ISO_id=Cyclist.ISO_id 
 
WHERE 'dob' 
 
BETWEEN '".$date_1."' AND '".$date_2."'";

下面是從表單提交獲取數據的PHP

$date_1=$_REQUEST['date_1']; 
 
$date_2=$_REQUEST['date_2'];

+0

什麼阻止你以任何你想要的方式解析輸入日期? –

+0

@TimBiegeleisen你是在談論從源表單還是從數據庫解析輸入?不幸的是,我們不能那樣做?我們必須在代碼內以某種方式更改數據類型 – RealHelper

+0

爲什麼不能在PHP代碼中構建一個'Y-m-d'字符串並在查詢中使用它? –

回答

1

STR_TO_DATE解析字符串的日期使用給定的格式。

$sql="SELECT `country_name`,`gdp`,`population`,Cyclist.name,Cyclist.dob FROM Country JOIN Cyclist ON Country.ISO_id=Cyclist.ISO_id 
WHERE 'dob' 
BETWEEN STR_TO_DATE('".$date_1.",'%d,%m,%Y') AND STR_TO_DATE('".$date_2.",'%d,%m,%Y')'"; 

STR_TO_DATE:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

+0

有沒有辦法在PHP裏面做?如裏面的請求 – RealHelper

+0

是的,你可以像Pradnya建議的那樣: $ date_1 = date('d-m-Y',strtotime($ _ REQUEST ['date_1'])); $ date_2 = date('d-m-Y',strtotime($ _ REQUEST ['date_2'])); – Raphael

+0

謝謝!希望它已經工作 獲得輸出問題 '$ res =&$ db-> query($ sql); (PEAR :: isError($ res)){ die($ res-> getMessage()); } $ InputDateArray = array(); echo'hello'; while($ row = $ res-> fetchRow()) $ InputDateArray [] = $ row; echo json_encode($ InputDateArray);' – RealHelper

0

可以更改在PHP日期()和的strtotime() e.g日期格式:$ date_new =日期( 'd-M-Y',的strtotime($日期)); 然後在sql查詢中傳遞它。