Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: MultiCarbon: PHP Carbon için Yerel Jalali ve Hicri Takvim Desteği
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » MultiCarbon: PHP Carbon için Yerel Jalali ve Hicri Takvim Desteği

Yazılım

MultiCarbon: PHP Carbon için Yerel Jalali ve Hicri Takvim Desteği

teknomers
Son güncelleme: 14 Şubat 2026 22:59
teknomers
Paylaş
Paylaş

İran, Afganistan veya Arapça konuşan ülkelerdeki kullanıcılara yönelik bir projede çalıştıysanız, Jalali (Solar Hijri), Hijri (İslami Ay Takvimi) ve Gregoryen takvimleri arasında tarih dönüştürmenin zorluğunu bilirsiniz.

Bunu kalıcı olarak çözmek için MultiCarbon kütüphanesini geliştirdim; bu bir wrapper değil, doğrudan nesbot/carbon kütüphanesinin bir uzantısı. Zaten bildiğiniz tüm Carbon yöntemleri, herhangi bir takvim modunda sorunsuz bir şekilde çalışır.

## Kurulum

composer require hpakdaman/multicarbon
Enter fullscreen mode

Exit fullscreen mode

Bu kütüphane PHP 8.1+ ve Carbon 3 gerektirir.


Temel Prensipler — Tek Bir Zaman Damgası, Üç Takvim

Ana fikir basit: altındaki zaman damgası asla değişmez. Sadece görselleştirme katmanını değiştirirsiniz.

use MultiCarbon\MultiCarbon;

$date = new MultiCarbon(‘2025-03-21’);

echo $date->jalali()->format(‘l j F Y’);
// جمعه 1 فروردین 1404

echo $date->hijri()->format(‘l j F Y’);
// الجمعة 21 رمضان 1446

echo $date->gregorian()->format(‘l j F Y’);
// Friday 21 March 2025

Hepsi bu kadar. Aynı nesne, üç takvim, tamamen akıcı.


Herhangi Bir Takvimde Tarih Oluşturma

Zihinsel dönüşüme gerek yok. Gerekli olan takvimi düşünün:

// Nowruz (Persian New Year)
$nowruz = MultiCarbon::createJalali(1404, 1, 1);
echo $nowruz->gregorian()->format(‘Y-m-d’); // 2025-03-21

// İlk Ramazan Günü
$ramadan = MultiCarbon::createHijri(1446, 9, 1);
echo $ramadan->gregorian()->format(‘Y-m-d’); // 2025-03-01


Takvim Farkındalığına Sahip Hesaplamalar

Burada ilginçleşiyor. Jalali’de bir ay eklemek, Gregoryen’e bir ay eklemekle aynı değil — ay uzunlukları farklıdır. MultiCarbon bunu otomatik olarak yönetir:

// Shahrivar 31 gün, Mehr 30 gün
$date = MultiCarbon::createJalali(1404, 6, 31);
$date->addMonth();
echo $date->format(‘Y/m/d’); // 1404/07/30 — Mehr’in maksimumuna sıkıştırılmış

// Artık yıl yönetimi
$date = MultiCarbon::createJalali(1403, 12, 30); // Esfand 30 (1403 artık yıl)
$date->addYear();
echo $date->format(‘Y/m/d’); // 1404/12/29 — sıkıştırılmış (1404 artık yıl değil)


Yerelleştirilmiş İsimler — Farsça ve Arapça

Ay isimleri, hafta günü isimleri ve hatta AM/PM tamamen yerelleştirilmiştir:

$date = MultiCarbon::createJalali(1404, 3, 15);

echo $date->jalali()->monthName; // خرداد
echo $date->jalali()->dayName; // پنجشنبه

echo $date->hijri()->monthName; // ذیحجه
echo $date->hijri()->dayName; // الخمیس


Farsça, Arapça & Latin Rakamlar

Rakamsal sisteminizi tek bir satırla global olarak değiştirebilirsiniz:

MultiCarbon::setDigitsType(MultiCarbon::DIGITS_FARSI);
echo MultiCarbon::createJalali(1404, 1, 1)->format(‘Y/m/d’);
// ۱۴۰۴/۰۱/۰۱

MultiCarbon::setDigitsType(MultiCarbon::DIGITS_ARABIC);
echo MultiCarbon::createHijri(1446, 9, 1)->format(‘Y/m/d’);
// ١٤٤٦/٠٩/٠١

MultiCarbon::setDigitsType(MultiCarbon::DIGITS_LATIN); // sıfırlama


diffForHumans() Farsça ve Arapça

echo MultiCarbon::createJalali(1403, 1, 1)->diffForHumans();
// 1 سال پیش

echo MultiCarbon::createHijri(1445, 1, 1)->diffForHumans();
// منذ 1 سنة


Takvim Farkındalığına Sahip Sınırlar

Ay ve yıl başlangıcı/bitişi, aktif takvime saygı gösterir:

$date = MultiCarbon::createJalali(1404, 6, 15, 14, 30, 0);

echo $date->copy()->startOfMonth()->format(‘Y/m/d H:i:s’);
// 1404/06/01 00:00:00

echo $date->copy()->endOfMonth()->format(‘Y/m/d H:i:s’);
// 1404/06/31 23:59:59

echo $date->copy()->endOfYear()->format(‘Y/m/d H:i:s’);
// 1404/12/29 23:59:59 (artık yıl değil)


Artık Yıl Tespiti

MultiCarbon::createJalali(1403, 1, 1)->isLeapYear(); // true
MultiCarbon::createJalali(1404, 1, 1)->isLeapYear(); // false


Karşılaştırmalar & Farklar

Tüm karşılaştırma yöntemleri aktif takvimde çalışır:

$a = MultiCarbon::createJalali(1404, 1, 1);
$b = MultiCarbon::createJalali(1404, 1, 25);

$a->isSameMonth($b); // true
$a->isSameDay($b); // false
$a->lessThan($b); // true
$a->diffInDays($b); // 24


Carbon’dan Dönüştürme

Projenizde zaten Carbon kullanıyorsanız, kesintisiz bir şekilde dönüştürülebilir:

$carbon = \Carbon\Carbon::parse(‘2025-03-21’);
$mc = MultiCarbon::fromCarbon($carbon);

echo $mc->jalali()->format(‘Y/m/d’); // 1404/01/01
echo $mc->hijri()->format(‘Y/m/d’); // 1446/09/21


Takvim Özellikleri

Aktif takvimde tüm tarih bileşenlerine erişim:

$date = MultiCarbon::createJalali(1404, 6, 15);

$date->year; // 1404
$date->month; // 6
$date->day; // 15
$date->dayOfYear; // 170
$date->daysInMonth; // 31
$date->quarter; // 2
$date->weekOfYear; // 36
$date->isWeekend(); // false (İran haftası: Cuma hafta sonu)


Serileştirme

$date = MultiCarbon::createJalali(1404, 7, 10, 8, 30, 0);

$date->toDateString(); // “1404-07-10”
$date->toArray();
// [‘year’ => 1404, ‘month’ => 7, ‘day’ => 10, ‘hour’ => 8, ‘minute’ => 30, ‘second’ => 0]

echo $date; // “1404/07/10 08:30:00”


Laravel Entegrasyonu

MultiCarbon, bir Laravel servis sağlayıcısı, facade ve Blade direktifleri ile birlikte gelir:

// Küresel yardımcılar
jdate(‘Y/m/d H:i:s’); // Şu anki Jalali tarihi
hdate(‘Y/m/d’); // Şu anki Hijri tarihi

// Blade direktifleri
@jdate(‘Y/m/d H:i:s’) // Şu anki Jalali
@hdate(‘Y/m/d’) // Şu anki Hijri
@jalali($user->created_at, ‘Y/m/d’) // Jalali’ye dönüştür
@hijri($post->published_at, ‘Y/m/d’) // Hijri’ye dönüştür


Arkada Nasıl Çalışıyor

MultiCarbon, debug_backtrace() kullanarak bir özelliğin veya metodun kodunuza mı yoksa Carbon’un iç motoruna mı erişildiğini tespit eder. Bu demektir ki:

  • $date->year çağrıldığında → Jalali/Hijri yılı döner
  • Carbon içten $this->year çağrıldığında → Gregoryen döner, böylece ebeveyn mantığı kırılmaz

Bağlantılar:


Geri bildirimlerinizi, önerilerinizi veya özellik taleplerinizi duymak isterim. Sorun açmaktan veya aşağıda bir yorum bırakmaktan çekinmeyin!

Kaynak: Orijinal Makale

Yeni Başlayanlar için Laravel Dağıtımı: Dağıtım Butonuna Tıkladığınızda Gerçekte Ne Olur
Laravel ile Filament Kullanarak MCP Sunucusu Nasıl Oluşturulur
Doppar ile Laravel: Sert Bir PHP Framework Karşılaştırması (2026)
2026’da Katılmanız Gereken Temel PHP Konferansları
WPBones v2 — Webpack Sürümü
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale RTX 5070 Ti & Ryzen 9 ile MSI Vector 16’da 700$ indirim!
Sonraki Makale Büyük Teknoloji Ürünlerini İnternet Hayatınızdan Nasıl Çıkarırsınız?

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Vatandaş Bilimi ile Ekoturizmi Birleştirerek Doğayı Koruma Stratejileri
Genel
Startup Battlefield 200 başvuruları 3 gün içinde kapanıyor
Yapay Zeka
Seattle, bir yıl süreli AI veri merkezi moratoriumu geçirecek – topluluk etkisini inceleyecek
Donanım
Şu anda telefonunuzdan uzaklaşmanızı isteyen en ilginç girişimler
Genel
AI Girişimi Senaryonun Hit Olup Olmayacağını Belirliyor
Liste
Kritik Uyarı: IronWorm ve Yeni Miasma Solucanı npm’e Sızdı
Siber Güvenlik
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?