(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