- Konu sahibi
- #1
PHP’de bir tarih metninin biçimini değiştirmek için önce mevcut biçimiyle tarihi okuyun, ardından
Girdi biçimi biliniyorsa
Aşağıdaki varsayımsal örneği bir PHP dosyasına kaydedip PHP ile çalıştırın:
Beklenen çıktı
Hata mesajı alırsanız girdinin yıl-ay-gün sırasını, tireleri ve günün ilgili ayda bulunup bulunmadığını kontrol edin. Örneğin girdiniz
Biçim dizgesindeki harfler tarih ve saat parçalarını belirler; nokta, tire ve eğik çizgi gibi ayırıcılar çıktıda kullanılır.
Örneğin
Mevcut anı göstermek için tarih metnini ayrıştırmanız gerekmez. Zaman dilimini açıkça belirleyip sonucu biçimlendirebilirsiniz:
Çıktı, kodun çalıştığı andaki İstanbul tarihini ve saatini gösterir. Farklı bir bölgenin saatini istiyorsanız zaman dilimi adını değiştirin. Yalnızca biçim dizgesini değiştirmek saat dilimini değiştirmez.
format() ile istediğiniz biçimde yazdırın. Örneğin 2026-10-26 değerini 26.10.2026 olarak gösterebilirsiniz. Bu işlem tarihi yalnızca çıktıda biçimlendirir; kaynak metni veya veritabanındaki değeri kendiliğinden değiştirmez.Mevcut tarihi başka bir biçimde yazdırma
Girdi biçimi biliniyorsa
DateTimeImmutable::createFromFormat() kullanın. İlk parametre girdinin biçimini, format() içindeki parametre ise istenen çıktı biçimini belirtir.Aşağıdaki varsayımsal örneği bir PHP dosyasına kaydedip PHP ile çalıştırın:
PHP:
<?php
$girdi = '2026-10-26';
$tarih = DateTimeImmutable::createFromFormat('!Y-m-d', $girdi);
$hatalar = DateTimeImmutable::getLastErrors();
if ($tarih === false ||
($hatalar !== false &&
($hatalar['warning_count'] > 0 || $hatalar['error_count'] > 0)) ||
$tarih->format('Y-m-d') !== $girdi) {
echo 'Geçersiz tarih veya beklenmeyen tarih biçimi.';
} else {
echo $tarih->format('d.m.Y');
}
Beklenen çıktı
26.10.2026 olur. ! işareti, girdide bulunmayan saat gibi alanları sıfırlar. Hata kontrolü önemlidir: PHP bazı geçersiz tarihleri otomatik olarak başka bir tarihe dönüştürebilir; yalnızca nesne oluşması girdinin geçerli olduğunu kanıtlamaz. Son karşılaştırma da girdinin tam olarak Y-m-d biçiminde olmasını sağlar.Hata mesajı alırsanız girdinin yıl-ay-gün sırasını, tireleri ve günün ilgili ayda bulunup bulunmadığını kontrol edin. Örneğin girdiniz
26.10.2026 biçimindeyse okuma biçimini !d.m.Y, son karşılaştırmadaki biçimi de d.m.Y olarak değiştirin.Biçim karakterlerini seçme
Biçim dizgesindeki harfler tarih ve saat parçalarını belirler; nokta, tire ve eğik çizgi gibi ayırıcılar çıktıda kullanılır.
| Karakter | Anlamı | Örnek |
|---|---|---|
| d | İki basamaklı gün | 06 |
| m | İki basamaklı ay | 03 |
| Y | Dört basamaklı yıl | 2026 |
| H | 24 saat biçiminde saat | 15 |
| i | Dakika | 04 |
| s | Saniye | 09 |
d/m/Y H:i biçimi 26/10/2026 15:04 gibi bir çıktı üretir. Dakika için küçük i kullanın; m ayı gösterir. Girdi saat de içeriyorsa okuma biçimine saat alanlarını ve ayırıcılarını da ekleyin.Şu anki tarihi gösterme
Mevcut anı göstermek için tarih metnini ayrıştırmanız gerekmez. Zaman dilimini açıkça belirleyip sonucu biçimlendirebilirsiniz:
PHP:
<?php
$simdi = new DateTimeImmutable('now', new DateTimeZone('Europe/Istanbul'));
echo $simdi->format('d.m.Y H:i:s');
Çıktı, kodun çalıştığı andaki İstanbul tarihini ve saatini gösterir. Farklı bir bölgenin saatini istiyorsanız zaman dilimi adını değiştirin. Yalnızca biçim dizgesini değiştirmek saat dilimini değiştirmez.