(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.
tarihzamanDateTimeImmutable::__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)