(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)