"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 시간 형식을 처리할 때 예상치 못한 결과를 방지하려면 어떻게 해야 합니까?

PHP에서 시간 형식을 처리할 때 예상치 못한 결과를 방지하려면 어떻게 해야 합니까?

2024년 11월 19일에 게시됨
검색:404

When Handling Time Formats in PHP, How Can We Avoid Unexpected Results?

PHP의 시간 조작: H:i에서 30분 더하기 및 빼기

PHP에서는 시간 관련 작업을 처리하는 것이 다양한 작업에 매우 중요합니다. 응용 프로그램. 일반적인 시나리오 중 하나는 "H:i" 형식의 시간 값을 수정하는 것입니다. 이 형식은 "10:00" 또는 "13:30"과 같이 시간과 분 단위의 시간을 나타냅니다.

이러한 값에서 특정 시간 간격을 더하거나 빼려면 strtotime() 및 date( ) 기능. 그러나 초기 시간 값의 형식이 타임스탬프로 적절하지 않은 경우 일부 예상치 못한 동작이 발생할 수 있습니다.

두 개의 새로운 값을 생성하는 것을 목표로 하는 예를 고려해 보겠습니다. $startTime은 $time 30분 전이고 $endTime은 30입니다. $time 이후 분. 여기서 $time의 형식은 "H:i."

아래 코드 조각은 처음에는 합리적으로 보일 수 있습니다.

$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));

그러나 "10:00"을 $time으로 전달하면 예상치 못한 결과가 발생합니다. $startTime은 다음과 같습니다. 의도된 "09:30" 대신 "00:30"이고 $endTime은 "10:30" 대신 "01:30"이 됩니다.

핵심 문제는 $time이 다음과 같다는 초기 가정에 있습니다. 타임스탬프. 그러나 이는 "H:i" 형식의 문자열일 뿐입니다. 이 문제를 해결하려면 먼저 strtotime() 함수를 사용하여 $time을 타임스탬프로 변환해야 합니다.

수정된 코드:

$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));

이제 결과는 예상과 일치합니다. $startTime은 "09:30"이 되고 $endTime은 "10시 30분"이 됩니다. $time이 처음부터 타임스탬프인지 확인함으로써 PHP에서 정확한 시간 조작을 수행할 수 있습니다.

릴리스 선언문 이 글은 1729223781에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3