我有一个列名的表是db_datetime类型为datetime 的日期存储这样的数据库2个日期之间的搜索与不同的格式
对我使用日期搜索选取器这个日期选择器的格式是这样
09/19/2016 M/d/Y
我想两个日期之间的搜索和一个下拉菜单上的名称进行搜索,并在字符或数字 搜索我使用这款C颂歌,但问题是与我使用STR_TO_DATE
日期,但它并没有给我一个结果所有我的努力没有成功总是给我没有结果我的搜索,我有一个日期存储我为什么搜索 这是代码
if(isset($_POST['submit'])) {
$search=mysqli_real_escape_string($conn,$_POST['txt_search']);
$q = array();
$sql = "";
if(isset($_POST['txt_name']) && !empty($_POST['txt_name'])){
$name = mysqli_real_escape_string($conn,$_POST['txt_name']);
$q[] = " db_name='".$name."' ";
}
if(isset($_POST['txt_psd']) && !empty($_POST['txt_psd'])){
$psd= mysqli_real_escape_string($conn,$_POST['txt_psd']);
$q[] = "STR_TO_DATE($psd, '%Y-%m-%d') like'%db_datetime%' ";
}
if(isset($_POST['txt_pdd']) && !empty($_POST['txt_pdd'])){
$pdd = mysqli_real_escape_string($conn,$_POST['txt_pdd']);
$q[] = "STR_TO_DATE($pdd, '%Y-%m-%d') like'%db_datetime%' ";
}
$qq=array();
if(isset($_POST['txt_search']) && !empty($_POST['txt_search'])){
$search = mysqli_real_escape_string($conn,$_POST['txt_search']);
$qq[] = "db_name like '%".$search."%' ";
$qq[] = "db_datetime like '%".$search."%' ";
$qq[] = "db_user like '%".$search."%' ";
}
$first = true;
$second=true;
foreach($q as $qu){
if($first){
$sql .= " where ".$qu;
$first = false;
}else{
$sql .= " and ".$qu;
}}
foreach($qq as $qu){
if($second){
$sql .= " where ".$qu;
$second = false;
}else{
$sql .= " or ".$qu;
}}
$result=mysqli_query($conn,"SELECT * FROM tbl_login {$sql}")or die(mysqli_error($conn));
重新格式化日期,以便它与MySQL的兼容。如果日期选择器没有这种内置功能,我不会感到惊讶 – James111
尝试这样: \t'$ dte = str_replace('/',' - ',$ post_data ['date']); \t $ dt = new DateTime(); $ date = $ dt-> createFromFormat('d-m-Y',$ dte); ('Y-m-d');' 我有一个类似的问题,用你的替换瓦尔。 –
@ James111我如何重新格式化日期? – mhmd