PHP 5.4.33 Released

date_default_timezone_get

(PHP 5 >= 5.1.0)

date_default_timezone_get Betik içerisindeki tüm tarih/zaman işlevleri tarafından kullanılan öntanımlı zaman dilimini getirir

Açıklama

string date_default_timezone_get ( void )

Bu işlev tercih sırasına göre öntanımlı zaman dilimini şöyle döndürür:

  • date_default_timezone_set() işlevi kullanılarak atanan zaman dilimiyle (eğer varsa).

  • TZ ortam değişkenindeki değerle (boş değilse).

  • date.timezone ini yönergesindeki değerle (ayarlanmışsa).

  • Ev sahibi işletim sistemini sorgulayarak (işletim sistemi destekliyor ve izin veriyorsa).

Eğer yukarıdakilerin hiçbirisi başarılı değilse, date_default_timezone_get() işlevi öntanımlı UTC zaman dilimini döndürecektir.

Dönen Değerler

string türünde geri döner.

Örnekler

Örnek 1 - Öntanımlı zaman diliminin getirilmesi

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

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');
}

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

date_default_timezone_set: Europe/Istanbul
date.timezone: Europe/Istanbul

Örnek 2 - Zaman diliminin kısaltmasının getirilmesi

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

Yukarıdaki örneğin çıktısı:

Europe/Istanbul => Europe/Istanbul => EET

Ayrıca Bakınız

add a note add a note

User Contributed Notes 6 notes

up
4
glennpratt+php at gmail dot com
3 years ago
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());
?>
up
0
Damien dot Garrido dot Work at gmail dot com
2 years ago
To get offset string from offset:

<?php

function timezone_offset_string( $offset )
{
        return
sprintf( "%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', 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
up
-2
benrwhite at gmail dot com
1 year ago
For the reason that date_default_timezone_get() throws an error when the timezone isn't set in php.ini and then returns a default chosen by the system (rather than returning false to indicate to the script that a timezone hasn't been set), I've found that the following works when you want a script to detect when the ini value has not been set and want the script itself to choose a default in that case, while still allowing bootstrap scripts to set their own default using date_default_timezone_set().

<?php

set_error_handler
(function ($errno, $errstr){
    throw new
Exception($errstr);
    return
false;
});
try{
   
date_default_timezone_get();
}
catch(
Exception $e){
   
date_default_timezone_set('UTC'); // Sets to UTC if not specified anywhere in .ini
}
restore_error_handler();
up
-2
dohpaz at gmail dot com
7 years ago
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.
up
-2
bohwaz
1 year ago
Please note that on Debian/Ubuntu this function will return the system timezone defined in /etc/localtime if date.timezone is not defined, even with PHP 5.4+

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673763#10
up
-6
harmor
6 years ago
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
To Top