(PHP 5 >= 5.3.0, PHP 7, PHP 8)
date_parse_from_format — Belirtildiği gibi biçimlendirilmiş olarak tarih hakkında bilgi verir
Belirtilen zamanla ilgili ayrıntılı bilgiyi ilişkisel bir dizi ile döndürür.
biçem
biçem kullanımı hakkında bilgi
DateTimeImmutable::createFromFormat() sayfasındadır.
Aynı kurallar uygulanır.
zamanZamanı gösteren dizge.
Belirtilen zaman hakkında ayrıntılı bilgiyi ilişkisel dizi ile döndürür.
Döndürülen dizi year (yıl),
month (ay), day (gün),
hour (saat), minute (dakika),
second (saniye), fraction (saniyenin
kesri), is_localtime (yerel zaman) alanlarını içerir.
is_localtime değeri mevcutsa
zone_type anahtarındaki değer zaman diliminin türünü
içerir. Zaman dilimi türü 1 (UTC) ise
zone (bölge) ve is_dst (hedef mi)
alanları, 2 (kısaltma) için tz_abbr
(zaman dilimi kısaltması) ve is_dst (hedef mi) alanları
ve 3 (zaman dilimi belirteci) için
tz_abbr (zaman dilimi kısaltması) ve
tz_id (zaman dilimi kimliği) alanları eklenir.
Dizi, warning_count (uyarı sayısı) ve
warnings (uyarılar) alanlarını da içerir. İlki kaç
uyarı olduğunu belirtir. warnings dizisinin anahtarları
belirtilen zamanda uyarının oluştuğu konumu ve
uyarıyı içeren dizgeyi belirtir. Aşağıdaki örneklerden biri böyle bir
uyarıyı içermektedir.
Dizi ayrıca, error_count (hata sayısı) ve
errors (hatalar) alanlarını da içerir. İlki kaç hata
bulunduğunu belirtir. errors dizisinin anahtarları
belirtilen zamanda hatanın oluştuğu konumu ve
hatayı içeren dizgeyi belirtir. Aşağıdaki örneklerden biri böyle bir
hatayı içermektedir.
warnings ve errors dizilerinin öğe
sayısı bunlar aynı konumda oluşmuşsa warning_count
veya error_count değerinden az olamaz.
zaman değeri NULL (\0) baytını içeriyorsa
ValueError istisnası oluşur.
| Sürüm: | Açıklama |
|---|---|
| 8.0.21, 8.1.8, 8.2.0 |
zaman değeri NULL (\0) baytını içeriyorsa artık
ValueError istisnası oluşuyor, evvelce
sessizce yok sayılırdı.
|
| 7.2.0 |
Dönen dizinin zone öğesi artık dakika değil saniye
cinsinden değer içeriyor ve imi ters oluyor. Örneğin,
-120 yerine artık 7200 dönüyor.
|
Örnek 1 - date_parse_from_format() örneği
<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>Yukarıdaki örneğin çıktısı:
Array
(
[year] => 2009
[month] => 1
[day] => 6
[hour] => 13
[minute] => 0
[second] => 0
[fraction] =>
[warning_count] => 0
[warnings] => Array
(
)
[error_count] => 0
[errors] => Array
(
)
[is_localtime] => 1
[zone_type] => 1
[zone] => 3600
[is_dst] =>
)
Örnek 2 - Uyarılı date_parse_from_format() örneği
<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);
echo "Uyarı sayısı: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\t{$position} konumunda: {$message}\n";
}
?>Yukarıdaki örneğin çıktısı:
Uyarı sayısı: 1 23 konumunda: The parsed time was invalid
Örnek 3 - Hatalı date_parse_from_format() örneği
<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);
echo "Hata sayısı: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\t{$position} konumunda: {$message}\n";
}
?>Yukarıdaki örneğin çıktısı:
Hata sayısı: 3 15 konumunda: A two digit hour could not be found 19 konumunda: Data missing