PHP에서는 종종 각 이벤트가 발생할 때 특정 시간을 표시하기 위해 일반적으로 타임 스탬프가 포함 된 로그 정보를 기록해야합니다. 로그 파일의 시간 형식이 프로젝트 요구 사항을 충족 시키거나 다른 언어 영역의 요구를 충족시키기 위해 SetLocale () 함수 및 Strftime () 기능은 매우 중요한 도구입니다.
이 기사는 실제 예제를 사용하여 setlocale ()로 로그에서 타임 스탬프를 설정하고 포맷하는 방법을 설명합니다.
setLocale () 함수
setLocale () 함수는 프로그램의 로케일 환경을 설정하는 데 사용됩니다. 로케일은 날짜, 시간, 숫자, 통화 등의 서식 방법에 영향을 미칩니다 . setLocale ()는 중국어, 영어, 프랑스어 등과 같은 다른 지역의 요구를 충족시키기 위해 Locale ()을 설정하는 데 사용될 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span></span>
위의 코드는 로케일을 중국 (중국)으로 설정하고 인코딩이 UTF-8임을 지정합니다.
Strftime () 함수
Strftime () 함수는 주어진 형식의 문자열과 현재 로케일 설정에 따라 형식화 된 날짜 또는 시간 문자열을 반환합니다. 이 기능은 시간의 사용자 정의 서식에 매우 유용합니다.
<span><span><span class="hljs-variable">$formatted_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%Y년도%m달%d낮 %H:%M:%S"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted_time</span></span><span>; </span><span><span class="hljs-comment">// 산출:2025년도06달20낮 10:30:15</span></span><span>
</span></span>
실제 프로젝트에서는 일반적으로 시스템 오류, 사용자 작업, 작업 실행 등과 같은 로그를 기록합니다. 로그의 타임 스탬프는 일반적으로 시간독과 일관성을 보장하기 위해 다른 요구에 따라 형식화되어야합니다.
다음은 SetLocale () 및 Strftime ()을 사용하여 로그 파일의 타임 스탬프를 형식화하는 방법에 대한 실질적인 예입니다.
로그 파일에 날짜, 시간 및 로그 세부 사항의 출력이 필요한 간단한 로깅 시스템이 있다고 가정합니다. 현재 로케일을 기반으로 로그의 타임 스탬프를 포맷하려고합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 지역을 중국어로 설정하십시오(중국),인코딩UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// 현재 타임 스탬프를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$current_timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
</span><span><span class="hljs-comment">// 타임 스탬프를 형식화합니다</span></span><span>
</span><span><span class="hljs-variable">$formatted_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%Y년도%m달%d낮 %H:%M:%S"</span></span><span>, </span><span><span class="hljs-variable">$current_timestamp</span></span><span>);
</span><span><span class="hljs-comment">// 낮志内容</span></span><span>
</span><span><span class="hljs-variable">$log_message</span></span><span> = </span><span><span class="hljs-string">"시스템 스타트 업 성공!"</span></span><span>;
</span><span><span class="hljs-comment">// 打开낮志文件并写入낮志</span></span><span>
</span><span><span class="hljs-variable">$log_file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'system.log'</span></span><span>, </span><span><span class="hljs-string">'a'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$log_file</span></span><span>) {
</span><span><span class="hljs-variable">$log_entry</span></span><span> = </span><span><span class="hljs-variable">$formatted_time</span></span><span> . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$log_message</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">fwrite</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>, </span><span><span class="hljs-variable">$log_entry</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"낮志已记录!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"无法打开낮志文件!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
setLocale ()은 로케일 환경을 설정합니다 .
SetLocale (LC_TIME, 'ZH_CN.UTF-8')은 로케일을 중국어 (중국)로 설정하고 UTF-8로 인코딩하여 날짜와 시간이 중국어 형식으로 표시되도록 사용됩니다.
현재 타임 스탬프를 얻으십시오 .
Time () 함수를 사용하여 현재 UNIX 타임 스탬프를 얻으십시오.
형식 타임 스탬프 :
strftime ()은 지정된 형식에 따라 "연도 월 : 분 : 두 번째"로 타임 스탬프를 문자열로 포맷하는 데 사용됩니다. %y (4 자리 연도), %m (월), %d (일), %h (시간), %m (분), %s (초)와 같은 형식 기호가 여기에서 사용됩니다.
로그 파일에 쓰기 :
fopen ()을 사용하여 로그 파일을 열고 fwrite ()는 형식화 된 시간과 로그 컨텐츠를 파일에 씁니다. 그리고 fclose ()는 파일을 닫습니다.
로그 출력 :
각 로그는 "yyyyy mm month dd day hh : mm : ss -message"형식으로 파일에 기록됩니다.
<span><span><span class="hljs-number">2025</span></span><span><span class="hljs-string">년도06달20낮</span></span><span> </span><span><span class="hljs-number">10</span></span><span><span class="hljs-string">:30:15</span></span><span> </span><span><span class="hljs-bullet">-</span></span><span> </span><span><span class="hljs-string">시스템 스타트 업 성공!</span></span><span>
</span></span>
setlocale () 및 strftime ()을 사용하면 로그인 PHP에서 편리하게 타임 스탬프를 설정하고 형식화 할 수있어 로그의 시간 표시가 특정 로케일 및 형식 요구 사항을 준수 할 수 있습니다. 로그의 시간 형식은 지역이나 로컬에 따라 다를 수 있으므로 이러한 기능을 사용하면 로그 가독성 및 현지화 지원을 향상시킬 수 있습니다.
실제 애플리케이션에서 형식 문자열은 특정 시간 형식 요구 사항을 충족 해야하는 요구에 따라 조정할 수 있습니다.