>백엔드 개발 >PHP 튜토리얼 >PHP에서 'y-m-d-h-i-s' 날짜 문자열을 'Y-m-d H:i:s'로 어떻게 변환할 수 있나요?

PHP에서 'y-m-d-h-i-s' 날짜 문자열을 'Y-m-d H:i:s'로 어떻게 변환할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 18:32:34550검색

How Can I Convert a 'y-m-d-h-i-s' Date String to 'Y-m-d H:i:s' in PHP?

PHP에서 날짜 형식 변환

PHP에서 날짜 형식을 다른 형식으로 변환해야 하는 상황이 발생할 수 있습니다. PHP는 날짜 조작을 위한 여러 기능을 제공하지만 프로세스와 잠재적인 위험을 이해하는 것이 중요합니다.

다음 시나리오를 고려하십시오. 'y-m-d-h-i-s' 형식의 날짜가 있고 이를 다음으로 변환하려고 합니다. 'Y-m-d H:i:s' 형식입니다. 일반적으로 strtotime()을 사용하여 문자열을 타임스탬프로 변환한 다음 이를 date()에 전달합니다. 그러나 귀하의 경우 strtotime()은 false를 반환하여 '1970-01-01 00:00:00'이라는 잘못된 날짜를 남깁니다.

문제는 입력 문자열의 형식에 있습니다. strtotime()은 유효한 타임스탬프나 인식하는 형식의 문자열을 기대합니다. 불행하게도 'y-m-d-h-i-s'는 인식되는 형식 중 하나가 아닙니다.

솔루션

PHP 5.3 이상

PHP의 경우 5.3 이상에서는 권장되는 솔루션은 다음을 사용하는 것입니다. 날짜시간::createFromFormat(). 이 함수를 사용하면 date() 구문을 사용하여 정확한 마스크를 지정하여 들어오는 문자열 날짜를 구문 분석할 수 있습니다. 귀하의 경우 코드는 다음과 같습니다:

$datetime = DateTime::createFromFormat('y-m-d-h-i-s', $old_date);
$new_date = $datetime->format('Y-m-d H:i:s');

PHP 5.2 이하

PHP 5.2 이하에서는 придется 요소(연도)를 수동으로 구문 분석합니다. , 월, 일, 시, 분, 초) substr()을 사용하여 결과를 mktime()에 공급하면 timestamp.

그러나 이 접근 방식은 더 번거롭습니다. 다양한 날짜 입력 형식을 지원하는 strftime()이 이해할 수 있는 다른 형식을 사용하는 것이 좋습니다. 예를 들어 다음 코드는 작동합니다.

$old_date = date('l, F d y h:i:s');                
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);

위 내용은 PHP에서 'y-m-d-h-i-s' 날짜 문자열을 'Y-m-d H:i:s'로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.