date_parse
(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
Açıklama
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.
Dönen Değerler
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.
Uyarı
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.
Hatalar/İstisnalar
Tarih biçimi hatalı olduğu taktirde, dizinin 'errors' elemanı hata
iletilerini içerecektir.
Örnekler
Ö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)
}
}
Ayrıca Bakınız
- date_parse_from_format() - Belirtildiği gibi biçimlendirilmiş olarak tarih hakkında bilgi verir (Belirli biçemlerin
tarihzaman
dizgesinden ayrıştırılması
için)
- checkdate() - Miladi tarihi doğrular (Gregoryen tarih doğrulaması için)
- getdate() - Tarih/zaman bilgisi getirir