2009-08-31 3 views
1

나는 내 데이터베이스에있는 시간을 표시하려고합니다. 나는 그것이 필요한 형식을위한 정확한 형식으로 시간을 표시하도록 할 수 있었지만, 어떤 이유로, 매번 '4:00'만 표시합니다. 여기 PHP로 날짜 함수를 사용하여 시간을 표시하려고 할 때 왜 '4:00'이 될까요?

내 코드입니다 :

date('g:i', strtotime($row['startTime'])) 

I의 예는 내 데이터베이스에 표시되는 시간이 비슷했다 : 0시 12분 30초

은 왜 모든 '4:00'보여주고있다 시각?

+1

열의 데이터 형식은 무엇입니까? $ row [ 'startTime']을 echo하면 무엇을 얻을 수 있습니까? – Artelius

+1

이 멈춘다. 만약 날짜가 '00 : 12 : 30'으로 저장되어 있고 시간 (g)과 분 (i)을 표시하고 싶다면 단순히'echo substr ($ dateText, 0,5)'어디'$ dateText = $ row [ 'startTime'];'? –

+0

시간 데이터 유형입니다. 나는 단순히 $ row [ 'startTime']을 echo했을 때 아무 것도 나타나지 않는다. 그것의 기괴함은 – zeckdude

답변

2

strtotime으로는 날짜 형식은 ... 당신이

date('g:i', strtotime('01 January 2009 ' . $row['startTime'])) 
+0

입니다.하지만 지금은 그 때마다 '12 : 00 '으로 표시됩니다. – zeckdude

+0

$ row ['startTime ']에 값이 있는지 확인하십시오. 그 값은 빈 것으로 들리므로 –

1

기본 데이터베이스는 무엇이며 startTime 열의 데이터 형식은 무엇입니까? 내가 가진 가장 가까운 PHP 코드에서 피어링 (strtoime)은 DB (MySQL)의 DATETIME 표현과 잘 동작합니다.

+0

startTime 열은 시간 데이터 유형 – zeckdude

1

strtotime은 날짜 시간 문자열을 유닉스 타임 스탬프로 변환합니다.

아마도 $ row [ 'startTime']은 (는) 날짜 시간 문자열로 적합하지 않습니다.

예제가 없음 here은 날짜가 포함되지 않은 날짜 시간 문자열에 대해 설명했습니다.

strtotime을 혼동하면 임의의 결과가 반환됩니다. 몇 가지 형식 문자를 추가하고 반환되는 다른 문자를 확인합니다.

1

으로는 문제가 strtotime()의 사용이다 주목해야 할 것으로 기대하고있다. 내 컴퓨터에서 다음과 같이 작동합니다.

$date_text = $row['startTime']; // assuming the format "00:12:30" 
list($hrs,$mins,$secs) = explode(":",$date_text); // in response to the question in the comments 
/* the explode() takes the string "00:12:30" and breaks into three components "00","12" and "30". 
these components are named, by their order in the array formed by explode(), as $hrs, $mins and $secs. 
see: http://us3.php.net/manual/en/function.explode.php 
and: http://us3.php.net/manual/en/function.list.php 
*/ 

echo "<p>" . date("g:i",mktime($hrs,$mins,$secs)) . "</p>"; 
+0

은 $ hrs, $ mins 및 $ secs의 변수는 무엇입니까? – zeckdude

+0

설명 할 코드를 업데이트합니다. –

관련 문제