(PHP 5 >= 5.2.0, PHP 7, PHP 8)
date_parse — Verilen tarih/zaman hakkındaki ayrıntılı bilgiyi ilişkisel dizi olarak döndürür
date_parse() belirtilen
tarihzaman
dizgesini strtotime()
ve DateTimeImmutable::__construct()'ın bağlı olduğu
kurallara uygun olarak çözümler. Bir zaman damgası
(strtotime() ile) veya
DateTimeImmutable nesnesi
(DateTimeImmutable::__construct() ile) döndürmek
yerine, belirtilen tarihzaman
dizgesinden saptanan
bilgiyi içeren bir ilişkisel dizi döndürür.
Belli öğelerle ilgili bilgi yoksa, ya bu dizi elemanlarına false
atanır ya da elemanlar dizide yer almaz. Bir zaman damgası veya
DateTimeImmutable nesnesi oluşturmak için
gerekliyse bazı alanlara false
'tan farklı değerler atanabilir.
Bunun olduğu durumlar aşağıda örneklenmiştir.
tarihzaman
DateTimeImmutable::__construct() işlevi tarafından kabul edilen biçimde tarih/zaman.
Başarılı olduğunda çözümlenen tarih/zaman bilgilerini içeren diziyle döner.
Dönen dizinin anahtarları: year
,
month
, day
, hour
,
minute
, second
,
fraction
ve is_localtime
.
is_localtime
mevcutsazone_type
zaman dilimi türünü betimler. 1
. tür (UTC farkı)
için zone
, is_dst
alanları eklendi;
2
. tür (kısaltma) için tz_abbr
,
is_dst
alanları eklendi; ve 3
.tür
(zaman dilimi betimleyici) için tz_abbr
,
tz_id
alanları eklendi.
tarihzaman
dizgesi içinde, +3 days
(+3 gün) gibi göreli zaman elemanları mevcutsa, dönen dizi
relative
anahtarlı gömülü bir dizi içerir. Bu dizinin
anahtarları year
, month
,
day
, hour
, minute
,
second
ve gerekiyorsa weekday
ve
weekdays
olup değerleri aktarılan dizgeye bağlıdır.
Dizi warning_count
ve warnings
alanlarını içerir. İlki, gelen uyarı sayısıdır. warnings
dizisinin anahtarları uyarının kendisini açıklayan dizge değerini ve verilen
tarihzaman
içinde uyarının oluştuğu konumu betimler.
Dizi ayrıca, error_count
ve errors
alanlarını da içerir. İlki bulunan hata sayısıdır. errors
dizisinin anahtarları hatanın kendini açıklayan dizge değerini ve verilen
tarihzaman
içinde hatanın oluştuğu konumu betimler.
warnings
ve errors
dizilerindeki
eleman sayısı, ikisi de aynı konumda oluşmuşsa
warning_count
veya error_count
değerlerinden küçük olmalıdır.
Tarih biçimi hatalı olduğu taktirde, dizinin 'errors' elemanı hata iletilerini içerecektir.
Sürüm: | Açıklama |
---|---|
7.2.0 |
Dönen dizinin zone elemeanı artık dakika yerine
saniye sayısını gösteriyor, ayrıca işareti ters çevrildi. Örneğin,
-120 yerine şimdi 7200 dönüyor.
|
Örnek 1 - Kapsamlı bir tarihzaman
dizgesi ile
date_parse() örneği
<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>
Yukarıdaki örneğin çıktısı:
array(12) { ["year"]=> int(2006) ["month"]=> int(12) ["day"]=> int(12) ["hour"]=> int(10) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0.5) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) }
Zaman dilimi elemanları yalnızca tarihzaman
dizgesinde belirtilmişse dizide bulunur. Böyle bir durumda dizi daima
zone_type
elemanını ve bununla ilgili bir kaç elemanı
daha içerecekir.
Örnek 2 - Zaman dilimi kısaltması içeren date_parse() örneği
<?php
var_dump(date_parse("Mon, 29 Oct 1923 20:30:00 +0200"));
?>
Yukarıdaki örneğin çıktısı:
array(16) { ["year"]=> int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(10) ["minute"]=> int(28) ["second"]=> int(17) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(true) ["zone_type"]=> int(2) ["zone"]=> int(0) ["is_dst"]=> bool(true) ["tz_abbr"]=> string(3) "BST" }
Örnek 3 - Zaman dilimi belirteci ile date_parse() örneği
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>
Yukarıdaki örneğin çıktısı:
array(14) { ["year"]=> int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(10) ["minute"]=> int(28) ["second"]=> int(17) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(true) ["zone_type"]=> int(3) ["tz_id"]=> string(13) "Europe/London" }
Daha kısa bir tarihzaman
dizgesi ile daha az bilgi
elde edilir. Bu örnekte, tüm zaman parçaları için false
dönmektedir.
Örnek 4 - Kısa bir dizge ile date_parse() örneği
<?php
var_dump(date_parse("June 2nd, 2022"));
?>
Yukarıdaki örneğin çıktısı:
array(12) { ["year"]=> int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> bool(false) ["minute"]=> bool(false) ["second"]=> bool(false) ["fraction"]=> bool(false) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) }
Göreli biçimler "relative" öğeye ayrıştırılır ve mutlak biçimlerden ayrıştırılan değerleri etkilemez.
Örnek 5 - Göreli biçimlerle date_parse() örneği
<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>
Yukarıdaki örneğin çıktısı:
array(13) { ["year"]=> int(2006) ["month"]=> int(12) ["day"]=> int(12) ["hour"]=> int(10) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0.5) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) ["relative"]=> array(6) { ["year"]=> int(0) ["month"]=> int(0) ["day"]=> int(7) ["hour"]=> int(1) ["minute"]=> int(0) ["second"]=> int(0) }
Thursday
gibi uyaklı parçalar için, dizgenin zaman
bölümüne 0
atanır. Thursday
,
DateTimeImmutable::__construct()) işlevine
aktarılsaydı, bu ayrıca, 'hour', 'minute', 'second' ve 'fraction'
öğelerine de 0
atanmasıyla sonuçlanırdı. Aşağıdaki
örnekte, 'year' öğesi false
olarak bırakılmıştır.
Örnek 6 - Yan etkili date_parse() örneği
<?php
var_dump(date_parse("Thursday, June 2nd"));
?>
Yukarıdaki örneğin çıktısı:
array(13) { ["year"]=> bool(false) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(0) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) ["relative"]=> array(7) { ["year"]=> int(0) ["month"]=> int(0) ["day"]=> int(0) ["hour"]=> int(0) ["minute"]=> int(0) ["second"]=> int(0) ["weekday"]=> int(4) } }
tarihzaman
dizgesinden ayrıştırılması
için)