현재 위치: > 최신 기사 목록> setlocale ()로 로그에서 타임 스탬프를 설정하고 형식화하는 방법은 무엇입니까? 실용적인 예시 설명

setlocale ()로 로그에서 타임 스탬프를 설정하고 형식화하는 방법은 무엇입니까? 실용적인 예시 설명

gitbox 2025-06-22

setlocale ()로 로그에서 타임 스탬프를 설정하고 형식화하는 방법은 무엇입니까? 실용적인 예시 설명

PHP에서는 종종 각 이벤트가 발생할 때 특정 시간을 표시하기 위해 일반적으로 타임 스탬프가 포함 된 로그 정보를 기록해야합니다. 로그 파일의 시간 형식이 프로젝트 요구 사항을 충족 시키거나 다른 언어 영역의 요구를 충족시키기 위해 SetLocale () 함수 및 Strftime () 기능은 매우 중요한 도구입니다.

이 기사는 실제 예제를 사용하여 setlocale ()로 로그에서 타임 스탬프를 설정하고 포맷하는 방법을 설명합니다.

1. setlocale ()strftime () 이해

  1. 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임을 지정합니다.

  2. 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>

2. 로그에서 타임 스탬프를 사용하십시오

실제 프로젝트에서는 일반적으로 시스템 오류, 사용자 작업, 작업 실행 등과 같은 로그를 기록합니다. 로그의 타임 스탬프는 일반적으로 시간독과 일관성을 보장하기 위해 다른 요구에 따라 형식화되어야합니다.

다음은 SetLocale ()Strftime ()을 사용하여 로그 파일의 타임 스탬프를 형식화하는 방법에 대한 실질적인 예입니다.

3. 실제 예 : 로그에서 타임 스탬프를 포맷하십시오

로그 파일에 날짜, 시간 및 로그 세부 사항의 출력이 필요한 간단한 로깅 시스템이 있다고 가정합니다. 현재 로케일을 기반으로 로그의 타임 스탬프를 포맷하려고합니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

코드 설명 :

  1. setLocale ()은 로케일 환경을 설정합니다 .

    • SetLocale (LC_TIME, 'ZH_CN.UTF-8')은 로케일을 중국어 (중국)로 설정하고 UTF-8로 인코딩하여 날짜와 시간이 중국어 형식으로 표시되도록 사용됩니다.

  2. 현재 타임 스탬프를 얻으십시오 .

    • Time () 함수를 사용하여 현재 UNIX 타임 스탬프를 얻으십시오.

  3. 형식 타임 스탬프 :

    • strftime ()은 지정된 형식에 따라 "연도 월 : 분 : 두 번째"로 타임 스탬프를 문자열로 포맷하는 데 사용됩니다. %y (4 자리 연도), %m (월), %d (일), %h (시간), %m (분), %s (초)와 같은 형식 기호가 여기에서 사용됩니다.

  4. 로그 파일에 쓰기 :

    • fopen ()을 사용하여 로그 파일을 열고 fwrite ()는 형식화 된 시간과 로그 컨텐츠를 파일에 씁니다. 그리고 fclose ()는 파일을 닫습니다.

  5. 로그 출력 :

    • 각 로그는 "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>

4. 요약

setlocale ()strftime ()을 사용하면 로그인 PHP에서 편리하게 타임 스탬프를 설정하고 형식화 할 수있어 로그의 시간 표시가 특정 로케일 및 형식 요구 사항을 준수 할 수 있습니다. 로그의 시간 형식은 지역이나 로컬에 따라 다를 수 있으므로 이러한 기능을 사용하면 로그 가독성 및 현지화 지원을 향상시킬 수 있습니다.

실제 애플리케이션에서 형식 문자열은 특정 시간 형식 요구 사항을 충족 해야하는 요구에 따라 조정할 수 있습니다.