2014-02-11 5 views
0

사용자가 근무 시간을 시작한 날짜를 표시하는 데이터베이스에 변수가 있습니다. exapmle의 경우 날짜가 "03:05"입니다 ("H :나는"); 어떻게하면 데이터베이스에서 가져 오는 변수에 시간을 추가 할 수 있습니까? 이것은 내가 가진 코드입니다.어떻게 날짜 변수에 시간을 추가 할 수 있습니까

 $sid = $_SESSION["shift_id"]; 
     $new_query = mysql_query("SELECT * FROM `shifts` WHERE `shift_id` = '$sid'"); 
     $new_row = mysql_fetch_Assoc($new_query); 
     $check_start = $new_row["start"]; 
     $over = $check_start + 3600; 
     if($check_start > $over) 
     { 

      echo "Your shift is complete."; 

     }else 
     { 

      echo "<br />The time will be :<b>$over</b> when your shift is over.<br />"; 

     } 

그러나 1 시간을 추가하지 않으면 어떻게 될 수 있습니까?

date('H:i', $over) 

http://www.php.net/time 및 사용 PHP 인클로저와 에코에

+0

* sidenote : * 더 이상 사용되지 않는'mysql_ * '함수 사용을 중단한다. 대신 [MySQLi] (http://php.net/manual/en/book.mysqli.php) 또는 [PDO] (http://php.net/manual/en/book.pdo.php)를 사용하십시오. PDO를위한 좋은 [튜토리얼] (http://j.mp/PoWehJ)입니다. – Raptor

답변

0

변경 $ 이상

echo "<br />The time will be :<b>".date('H:i', $over)."</b> when your shift is over.<br />"; 

대신

echo "<br />The time will be :<b>$over</b> when your shift is over.<br />"; 

UPDATE : 당신이 경우 하 그 결과로 문제를 ving, 어쩌면 당신이 내 코드 전에 사용 날짜 형식으로

$over = strtotime($check_start) + 3600; 

http://php.net/strtotime

+0

03:05에 "shift"를 시작했고 $ over = $ check_start + 3600을했을 때; 나는 04:05을 얻지 못한다. 시작 시간 + 1 시간이되기 때문에이 예제에서 04:05을 출력하도록하고 싶다. – user3156054

+0

업데이트 된 솔루션 – user3106988

1

하나의 옵션을 당신의 시작을 변환 할 수 있습니다, 쿼리에서 그것을 할 :

$new_query = mysql_query("SELECT start + INTERVAL 1 HOUR as NEW_START, shifts.* FROM shifts WHERE shift_id = '$sid'"); 
0

나는 것을 볼 수 몇 초 만에 시간을 처리하고 있으므로이 행 시작을 폭발시킬 수 있습니다.

$check_start = $new_row["start"]; 
$hora = explode(':', $check_start); 
$check_start = ($hora[0] * 3600) + ($hora[1] * 60); 
$over = $check_start + 3600; 

이 시점에서 초 단위 check_start 숫자가 있지만 조건부 변수에 항상 3600을 추가하기 때문에 코드가 "Shift complete"부분에 입력되지 않습니다.

그래서 $ check_start> $ 이상 사실이 될 수 없다.

관련 문제