2016-08-05 1 views
-1

Я хочу найти результат между двумя датами одного столбца и конвертировать дату в y-m-d formate, но я получаю ответ 1970-01-01, что я могу сделать?Как исправить дату, возвращенную как 1970-01-01?

$dToDate = date("Y-m-d", strtotime($aData['to_date']))." 00:00:01"; 

    $dFromDate = date("Y-m-d", strtotime($aData['from_date']))." 23:59:59"; 


    $sAndWhere = "1 = 1"; 
    $sAndWhere .= " AND d.created_at between '".$dToDate.' AND '.$dFromDate."'"; 
    $sAndWhere .= " AND u.mood =".$sMood; 

    $sAndWhere .= " AND d.activated = 1 AND d.deleted=0"; 
    $sSql = "SELECT 
       * 
      FROM 
       diaries d 
      LEFT JOIN 
       users u 
      ON 
       d.id_user = u.id_user 
      WHERE ".$sAndWhere; 
+0

Прежде всего эхо дату и чек пуст или нет. –

+0

Может быть $ aData ['to_date']) или $ aData ['from_date'] пуст. Пожалуйста, проверь это. – phper

+0

Да, я понимаю, что я положил. – vid

ответ

0
$dToDate = $dFromDate = ""; 
if(strtotime($aData['to_date']) > 0) 
{ 
    $dToDate = date("Y-m-d", strtotime($aData['to_date']))." 00:00:01"; 
} 

if(strtotime($aData['from_date']) > 0) 
{ 
    $dFromDate = date("Y-m-d", strtotime($aData['from_date']))." 23:59:59"; 
} 

$sAndWhere = "1 = 1"; 
if(($dToDate != "") && ($dFromDate!="")) 
{ 
    $sAndWhere .= " AND d.created_at between '".$dToDate."' AND '".$dFromDate."'"; 
} 
else if($dToDate != "") 
{ 
    $sAndWhere .= " AND d.created_at = '".$dToDate."'"; 
} 
else if($dFromDate != "") 
{ 
    $sAndWhere .= " AND d.created_at = '".$dFromDate."'"; 
} 
$sAndWhere .= " AND u.mood =".$sMood; 

$sAndWhere .= " AND d.activated = 1 AND d.deleted=0"; 
$sSql = "SELECT 
      * 
     FROM 
      diaries d 
     LEFT JOIN 
      users u 
     ON 
      d.id_user = u.id_user 
     WHERE ".$sAndWhere; 

использовать этот код

+0

Спасибо, что ваша работа очень приятная! :) – vid

+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего после. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! – Rizier123

Смежные вопросы