2016-10-08 2 views
0

DVD 기한이 며칠인지 확인하려고합니다. 내 코드 :SQL 값을 PHP 변수 및 strtotime으로 사용하여 날짜의 차이 찾기

$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' "; 
$result = mysqli_query($dbc, $query); 
$newDate = DateTime::createFromFormat("l dS F Y", $result); 
$startTimeStamp = strtotime("$newDate"); 
$endTimeStamp = strtotime("NOW"); 
$timeDiff = abs($endTimeStamp - $startTimeStamp); 
$numberDays = $timeDiff/86400; 
$numberDays = intval($numberDays); 

NOW()를 사용하여 DVD를 대여하면 rented_dvds가 캡처됩니다. "경고 : DateTime :: createFromFormat()은 매개 변수 2가 문자열, 객체 .../.../return_dvd.php의 34 행에 있어야합니다"

라인 34는 다음과 같습니다. $ newDate 변수로 시작하는 줄.

이것은 다른 소스에서 모두 자갈로 싸인 코드입니다. 그러나 나는 제대로 자갈을 팠다 고 생각합니다. 나는 해답을 찾고 있었고 몇 가지 다른 해법을 시도해 보았지만 그 중 어떤 것도 효과가없는 것처럼 보였다.

또한 내 첫 번째 게시물이므로 '안녕하세요!' 어떤 도움을 주셔서 감사합니다!

+2

'$ result'은 (는) 날짜 또는 문자열이 아닙니다. 질의가 성공적으로 수행되면,'$ result'는 ** mysqli_result ** 객체입니다. (쿼리에 오류가 발생하면 $ result는 단지 FALSE가됩니다.) ** mysqli_result ** 객체를 사용하면 mysqli_fetch_assoc과 같은 함수를 호출하여 행을 검색 할 수 있습니다. (반입 할 행이 더 이상 없다면 행 대신 거짓을 반환합니다). 찾으려는 값은'mysqli_fetch_assoc'에 의해 반환 된 행 (연관 배열)의 요소가됩니다. – spencer7593

+0

요즘 누가 DVD를 빌리는거야?! :) –

+0

아마도 mysql, http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff에서 계산을 할 수 있습니다. @ spencer7593은 현재 구현되어 있지만 맞습니다. 또한'strtotime ("NOW")'==는'time()'일 것입니다. – chris85

답변

0

당신이 올바른 방법으로 가져 오는 있습니까? 당신은 당신이 필요로하는 특정 행을 유지하도록 물마루 걸어야 쓰려면

$row=mysqli_fetch_array($result); 
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']); 
+0

고마워요! 내가 뭘하고 있는지 몰라! –

0

$ result는 실제로 여러 행을 포함 할 수있는 객체이기 때문에 간단합니다. 직접 $ 결과를 가져 오기 때문에 ..you는이 형성 pbject 또는 배열에 당신을 줄 인

<?php 

$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' "; 
$result = mysqli_query($dbc, $query); 
$row = $result->fetch_assoc(); 
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']); 
$startTimeStamp = strtotime("$newDate"); 
$endTimeStamp = strtotime("NOW"); 
$timeDiff = abs($endTimeStamp - $startTimeStamp); 
$numberDays = $timeDiff/86400; 
$numberDays = intval($numberDays); 

?>