-1

PHPを使用してWindowsサーバーでサーバーのタイムゾーンを取得するには?

Linux の場合:

$systemTimeZone = system('date +%Z');

*ニックスシステム:

$systemTimeZone = popen("date +%Z");

ウィンドウズ:

$systemTimeZone = ???

greez & thx, sky...

編集:私は次のようなphp関数について知っています:

date_default_timezone_get()
date('T')
\DateTime::timezone

ただし、この PHP の組み込み関数はすべて、php.ini の設定を参照しています。OSから実際に使用されているタイムゾーンを知りたいです。

Windowsコマンドラインツールを使用しようとしました

systeminfo

しかし、これは呼び出しと解析が遅くなります。私がtestetを持っている別のコマンドラインツールは次のとおりです。

tzutil /g

これは私が望むタイムゾーン形式ではありません。私の場合、これを取得します:

$:> tzutil /g
W. Europe Standard Time

私のための他のアイデアはありますか?

4

3 に答える 3

5

組み込み関数はどうですか?

http://php.net/manual/en/function.date-default-timezone-get.php

于 2013-01-06T16:11:38.540 に答える
1

ちょうど同じエラーが発生しましたが、自作のマッピングを使用するよりも良い解決策が見つかりませんでした。Windowsの場合、これを使用しました:

// this array can be filled up with whatever you need
$timezones = array(
      'GMT' => 'Europe/London'
    , '0' => 'Europe/London'
    , '1' => 'Europe/London'
    , 'GMT Standard Time' => 'Europe/London'
    , '2' => 'Europe/Berlin'
    , 'W. Europe Standard Time' => 'Europe/Berlin'
);

// getting the timezone    
$timezone = exec('tzutil /g');

// and setting it accordingly
if( array_key_exists($timezone, $timezones)) {      
    echo("> timezone identified as " . $timezones[$timezone] . "\n");
    date_default_timezone_set($timezones[$timezone]);
} else {
    die("Unknown Timezone: " . $timezone);
}
于 2015-01-05T17:10:11.933 に答える
0

これにより、サーバーのタイムゾーンの省略形がわかります。

$systemTimeZone = date("T");
echo $systemTimeZone;

例:EST、MDT..。

于 2013-01-06T16:11:52.750 に答える