(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.
zaman
Zamanı 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 zaman
da 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 zaman
da 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