PHP Conference Nagoya 2025

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::__construct -- timezone_openYeni bir DateTimeZone nesnesi oluşturur

Açıklama

Nesne yönelimli kullanım

public DateTimeZone::__construct(string $timezone)

Yordamsal kullanım

Yeni bir DateTimeZone nesnesi oluşturur.

DateTimeZone nesnesi farklı türde üç zaman dilimi kuralına erişim sağlar: UTC başlangıcı (1. tür), zaman dilimi kısaltması (2. tür) ve IANA zaman dilimi veritabanında yayınlanan zaman dilimi belirteçleri (3. tür).

DateTimeZone nesnesi, yerel bir saat diliminde DateTime ve DateTimeImmutable nesneleriyle gösterilen saat dilimini oluşturabilmek için bu nesnelere eklenebilir.

Bağımsız Değişkenler

timezone

Desteklenen zaman dilimlerinden biri, saat farkı (+0200) veya zaman dilimi kısaltması (BST).

Dönen Değerler

Başarılı olduğunda yeni bir DateTimeZone nesnesi döndürür. Yordamsal kullanım başarısızlık durumunda false döndürür.

Hatalar/İstisnalar

Eğer zaman dilimi geçerli bir zaman dilimi değilse bu işlev DateInvalidTimeZoneException istisnası oluşturur. PHP 8.3 öncesinde Exception istisnası oluşuyordu.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0 Geçersiz değerler Exception yerine artık DateInvalidTimeZoneException istisnası oluşturuyor.

Örnekler

Örnek 1 - DateTimeZone oluşturmak ve DateTimeImmutable nesnesine eklemek

<?php
$d
= new DateTimeImmutable("2022-06-02 15:44:48 UTC");

$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];

foreach (
$timezones as $tz) {
$tzo = new DateTimeZone($tz);

$local = $d->setTimezone($tzo);
echo
$local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>

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


Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 16:44:48 +0100 — CEST

Örnek 2 - DateTimeZone örneklenirken hataların yakalanması

<?php
// Yakalanan istisna nesneleriyle hata işlenmesine örnek
$zamandilimleri = array('Europe/Istanbul', 'Mars/Phobos', 'Jupiter/Europa');

foreach (
$zamandilimleri as $zd) {
try {
$mars = new DateTimeZone($zd);
} catch(
Exception $e) {
echo
$e->getMessage() . '<br />';
}
}
?>

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

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top