Date/Time 函数
在线手册:中文  英文

date_default_timezone_get

(PHP 5 >= 5.1.0)

date_default_timezone_get取得一个脚本中所有日期时间函数所使用的默认时区

说明

string date_default_timezone_get ( void )

本函数返回默认时区,使用如下“假定”的顺序:

返回值

返回一个 string

更新日志

版本 说明
5.4.0 不再使用 TZ 来推测时区。
5.4.0 不再根据操作系统的信息来推测时区,因为这是不可靠的。

范例

Example #1 获取默认时区

<?php
date_default_timezone_set
('Europe/London');

if (
date_default_timezone_get()) {
    echo 
'date_default_timezone_set: ' date_default_timezone_get() . '<br />';
}

if (
ini_get('date.timezone')) {
    echo 
'date.timezone: ' ini_get('date.timezone');
}

?>

以上例程的输出类似于:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Example #2 获取一个时区的简写

<?php
date_default_timezone_set
('America/Los_Angeles');
echo 
date_default_timezone_get() . ' => ' date('e') . ' => ' date('T');
?>

以上例程会输出:

America/Los_Angeles => America/Los_Angeles => PST

参见


Date/Time 函数
在线手册:中文  英文

用户评论:

Damien dot Garrido dot Work at gmail dot com (2012-07-05 00:04:05)

To get offset string from offset:

<?php

function timezone_offset_string$offset )
{
        return 
sprintf"%s%02d:%02d", ( $offset >= ) ? '+' '-'abs$offset 3600 ), abs$offset 3600 ) );
}

$offset timezone_offset_get( new DateTimeZone'Pacific/Kiritimati' ), new DateTime() );
echo 
"offset: " timezone_offset_string$offset ) . "\n";

$offset timezone_offset_get( new DateTimeZone'Pacific/Tahiti' ), new DateTime() );
echo 
"offset: " timezone_offset_string$offset ) . "\n";
?>

Output:
offset: +14:00
offset: -10:00

glennpratt+php at gmail dot com (2011-05-19 13:30:45)

In my case, I'm not sure I can guess the correct timezone any better than PHP and it's no where near important enough to nag the user, so...

<?php
// Suppress DateTime warnings
date_default_timezone_set(@date_default_timezone_get());
?>

harmor (2008-02-28 08:19:57)

If you want to get the abbrivation (3 or 4 letter), instead of the long timezone string you can use date('T') function like this:
Input:
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get();
echo ' => '.date('e');
echo ' => '.date('T');
Output:
America/Los_Angeles => America/Los_Angeles => PST

dohpaz at gmail dot com (2007-04-20 14:58:32)

date_default_timezone_get() will still emit a warning in E_STRICT if the timezone is not set; either by date_default_timezone_set() or the ini option of date.timezone.
This is probably not a big deal, but I thought I would contribute what I found.

易百教程