2017-11-14 2 views
-1

나는 데이터베이스에 저장된 날짜 (유닉스 타임 스탬프 형식)와 이전 페이지의 날짜 패스를 비교하려고합니다. 내 코드는 아래와 같습니다. 오류 : 복구 할 수있는 심각한 오류 : DateTime 클래스의 개체를 14 행의 C : \ xampp \ htdocs \ check.php 문자열로 변환 할 수 없습니다.DateTime 유닉스 타임 스탬프를 비교하십시오

"datetime2" 10 자리 유닉스 시간으로 저장하십시오.

기본적으로 나는 정상 날짜로 변환하고 싶지 않습니다. 그냥 10 자리 unixtimestamp 그대로 저장하십시오.

foreach 루프도 살펴 보시기 바랍니다. 선택한 날짜가 데이터베이스에 나타나는지 확인하고 싶습니다.

감사합니다

<?PHP 
 
\t session_start(); 
 
\t 
 
\t $userid = $_SESSION['userid']; 
 
\t $datetime = $_POST['datetime']; 
 
\t $available = 0; 
 
\t \t 
 
\t $date = $datetime; $datetime2 = new DateTime($date); echo $datetime2->getTimestamp(); 
 

 

 

 
\t $con = mysqli_connect('localhost', 'root', 'abc123'); 
 

 
\t $query = "SELECT COUNT * FROM reservation WHERE InstallDate='" . $datetime2 . "'"; 
 

 
    \t if (!$con) 
 
     \t { 
 
     \t \t die('Could not connect: ' . mysqli_error($con)); 
 
     \t } 
 

 

 
    \t mysqli_select_db($con, 'btr'); 
 

 

 
    \t foreach(mysqli_query($con, $query)as $row) 
 
\t { 
 
\t \t if($row <=1) 
 
\t \t { 
 
\t \t \t $available = 1; 
 
\t \t \t echo $available; 
 
\t \t } \t 
 
\t \t 
 
\t } 
 

 

 
    \t mysqli_close($con); 
 

 
?>
대신 다음과 같은 방법은 적절한 방법으로 문자열로 변환하려고 클래스 날짜 시간의 객체를 사용

+0

값을 저장하기 위해'getTimestamp()'를 사용하지 않는 이유는 무엇입니까? – guyaloni

+0

나는 그것을 얻지 않는다. – zach89

+0

날짜로 변환하지 않으려는 경우 10 자리 문자열 만 사용하면됩니다. 그러나, 당신이 뭘하는지 10 자리 문자열로 시작, 그에서 DateTime 개체를 생성하고 SQL 쿼리에 해당 DateTime 개체를 전달합니다. – miknik

답변

0

:

$query = 
"SELECT COUNT * FROM reservation WHERE InstallDate='" 
.$datetime2->format('d/m/Y') 
."'"; 

또한 d/m/Y 분리를 조정 귀하의 데이터베이스, 예를 들어 mysql은 d.m.Y 분리를 사용합니다.

+0

10 자리 시간과 직접 비교하면 어떨까요? 그 방법으로 저장하고 비교할 수 있습니까? – zach89

관련 문제