2013-01-16 2 views
0

기본적으로 아래 코드를 얻는 데 문제가 있습니다. 24 시간 형식의 시간 스탬프 변수의 값이 1:00 PM 인 경우 다음에 있는지 확인하는 것입니다. 12 시간 형식으로 변환하십시오. 그 값을 되풀이하다 보면 항상 오후 6 시가됩니다. 문제가 무엇입니까? 여기strtotime 함수가 필요한 값을 반환하지 않습니다.

내가 얼마나입니다 $timeToday 변수 여기

$timeToday = date("H:i A"); 

이 제대로 작동하지 않는 코드 :

if ($timeToday>"12:59"){ 
      $timeConverted = date("h:i A", strtotime($timeToday)); 
      echo "You clocked out at: " . $timeConverted . "<br>"; 
     } else { 
     echo "You clocked out at: " . $timeToday . "<br>"; 
     } 
+0

재미있는 것은 항상 6:00 PM이라고 말하고 있지만 한눈에 나는 비교할 때 타임 스탬프를 사용하는 것이 좋다고 말합니다. 나는 문자열 비교가 컨텍스트보다 크거나 작은 결과를 줄 것이라고 생각하지 않습니다. –

답변

3

당신은 동일한 형식이없는 두 문자열을 비교하는 . $ timeToday는 AM/PM이며, 24 시간 클럭으로 설정합니다.

또한 코드는 AM/PM을 인쇄합니다. 내가 너를 올바르게 이해한다면, AM 만 프린트하고 싶지는 않다.

$format = strtotime($timeToday) > strtotime("12:59") ? "h:i A" : "h:i"; 
$timeConverted = date($format, strtotime($timeToday)); 
echo "You clocked out at: " . $timeConverted . "<br>"; 
관련 문제