現在の位置: ホーム> 最新記事一覧> GMDATEを使用して、さまざまな場所に日付を出力する方法

GMDATEを使用して、さまざまな場所に日付を出力する方法

gitbox 2025-05-27

1。GMDATEの基本的な使用

<?php
// 現在のタイムスタンプの対応するタイムスタンプ GMT 時間,ASのフォーマット 年-月-日 時間:分:2番
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 5月 2025

注: gmstrftime()は古いPHPバージョンでは利用できない場合があります。STRFTIME ()の使用を検討し、時間を現地時間に手動で変換することを検討してください。


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' => '1月',
    'February' => '2月',
    'March' => '行進',
    'April' => '4月',
    'May' => '5月',
    'June' => '6月',
    'July' => '7月',
    'August' => '8月',
    'September' => '9月',
    'October' => '10月',
    'November' => '十1月',
    'December' => '十2月',
];

// 拼接出力中文格式日期
$day = gmdate('j', $timestamp);
$year = gmdate('Y', $timestamp);

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

出力:

 土曜日 24 5月 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);

// または手動でマップします(上記の例を参照してください)
?>