2017-05-08 146 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查询中传递它。