현재 위치: > 최신 기사 목록> 다른 지역에서 gmdate를 사용하는 방법

다른 지역에서 gmdate를 사용하는 방법

gitbox 2025-05-27

1. Gmdate 의 기본 사용

 <?php
// 현재 타임 스탬프의 해당 타임 스탬프 GMT 시간,형식으로 년도-달-낮 시간:분:두번째
echo gmdate('Y-m-d H:i:s');
?>

출력 예 :

 2025-05-24 06:30:00

여기 돌아 오는 것은 그리니치 시간의 현재 날짜와 시간입니다.


2. 왜 Gmdate가 현지화 된 언어를 직접 출력 할 수 없습니까?

gmdate는 번호 날짜와 시간 부분 만 반환하며 월과주는 언어 텍스트로 변환되지 않습니다. 시스템의 로케일 설정에 따라 언어를 변경하지 않습니다.

예를 들어:

 <?php
echo gmdate('l, F j, Y');  // 출력은 비슷합니다:Saturday, May 24, 2025
?>

출력은 항상 토요일5 월 까지 영어로됩니다.


3. SetLocale ()Strftime () 결합하여 다국어 출력을 구현합니다

현지 언어의 날짜 형식을 출력하기 위해 현지화 된 로케일은 일반적으로 setlocale () 로 설정된 다음 현지화 날짜 문자열은 strftime () 로 출력됩니다.

그러나 Strftime ()은 현지 시간을 서버를 사용합니다. gmdate ()에서 얻은 GMT 시간을 결합하려면 GMStrftime () (PHP 8.1에서 사용할 수 있음)을 사용하거나 타임 스탬프를 수동으로 조정할 수 있습니다.

예:

 <?php
// 로케일을 중국어로 설정하십시오(중국)
setlocale(LC_TIME, 'zh_CN.UTF-8');

// 사용 gmstrftime 산출 GMT 시간的本地化낮期
echo gmstrftime('%A %e %B %Y', time());
?>

이것은 예를 들어 중국의 날, 월 등을 출력합니다.

 토요일 24 五달 2025

참고 : gmstrftime ()은 구형 PHP 버전으로 제공되지 않을 수 있습니다. stftime ()를 사용하고 시간을 현지 시간으로 수동으로 변환하는 것을 고려하십시오.


4. 수동 현지화 예 : 어레이가있는 다른 언어에 영어 매핑

서버에 필요한 언어 팩이 설치되어 있지 않거나 언어를보다 유연하게 제어하려면 영어 월과 주를 수동으로 대상 언어에 매핑 할 수 있습니다.

샘플 코드 :

 <?php
// 얻다 GMT 시간
$timestamp = time();

// 英文星期和달份
$week_en = gmdate('l', $timestamp);
$month_en = gmdate('F', $timestamp);

// 中文星期和달份映射
$week_map = [
    'Monday' => '월요일',
    'Tuesday' => '화요일',
    'Wednesday' => '수요일',
    'Thursday' => '목요일',
    'Friday' => '금요일',
    'Saturday' => '토요일',
    'Sunday' => '星期낮',
];

$month_map = [
    'January' => '一달',
    'February' => '二달',
    'March' => '三달',
    'April' => '四달',
    'May' => '五달',
    'June' => '六달',
    'July' => '七달',
    'August' => '八달',
    'September' => '九달',
    'October' => '十달',
    'November' => '十一달',
    'December' => '十二달',
];

// 拼接산출中文格式낮期
$day = gmdate('j', $timestamp);
$year = gmdate('Y', $timestamp);

echo $week_map[$week_en] . " " . $day . " " . $month_map[$month_en] . " " . $year;
?>

산출:

 토요일 24 五달 2025

5. 요약

  • gmdate ()는 GMT 시간을 기준으로 디지털 날짜 시간을 포맷하는 데 사용됩니다.

  • 다국어 환경에서는 텍스트 출력을 지원하지 않습니다.

  • 다국어 디스플레이를 구현하려면 setlocale () + gmstrftime ()을 사용하거나 날짜 텍스트를 직접 사용할 수 있습니다.

  • 실제 서버 환경 및 PHP 버전을 기반으로 적절한 방법을 선택하십시오.


예제 전체 코드를 참조하십시오

 <?php
// 로케일 설정
setlocale(LC_TIME, 'zh_CN.UTF-8');

// 얻다当前 GMT 시간戳
$timestamp = time();

// 사용 gmstrftime 산출本地化낮期(GMT 시간)
echo gmstrftime('%A %e %B %Y', $timestamp);

// 또는 수동으로지도(위의 예를 참조하십시오)
?>