Girilen ilk Tarihe Göre Geriye Kalan Tarihleri Oto Yazdıracak Algoritma

Belirli bir örüntüye göre oto tarih ekleyecek bir algoritma yazmak istiyorum. Nasıl yapabilirim? Girilen ilk tarihten sonra sağ tarafta bulunan sayılara göre tarihi oto şekilde artırmam lazım laravelde yeniyim, fikirlerinizi bekliyorum…

a

Merhaba, Laravel kendi içinde Carbon ile birlikte geliyor: Carbon - A simple PHP API extension for DateTime.

Carbon ile belirli bir tarihe ekleme ya da çıkarma yapabilirsiniz: Carbon - A simple PHP API extension for DateTime.

Bunun için Laravel’de bir örnek kod görelim;

now()->addDays(11);

Burada now() yardımcı fonksiyonu ile şu anki zamanı bir Carbon objesi olarak aldım ve bir Carbon yeteneği olan addDays() methoduna 11 parametresini vererek 11 gün eklemesini sağladım. Bu şekilde herhangi bir Carbon objesine gün ekleme/çıkarma yapabilirsiniz. Mevcut bir tarihten dönüşüm işlemleri de yukarıda verdiğim bağlantılarda detaylıca işlenmiş durumda.

Burada benim bir önerim de Laravel ile birlikte gelen Eloquent Mutatorlardan biri olan Date Castingi kullanmanız olacaktır: Eloquent: Mutators & Casting - Laravel - The PHP Framework For Web Artisans

Eloquent modelleri varsayılan olarak created_at ve updated_at sütunlarından gelen tarih verisini bir Carbon objesine dönüştürür. Böylece şunu yapabiliriz;

$post = Post::latest()->first(); // son Post kaydını aldım
$newDate = $post->created_at->addDays(11); // son postun kayıt tarihine 11 gün eklediğim yeni bir tarih oluşturdum

Yani siz de veritabanınızdaki kendi tablonuza örneğin custom_date diye bir alan açmış olun. Bu custom_date alanının da modelden okunduğunda doğrudan Carbon objesine çevrilmesini istiyorsanız yukarıda da bağlantısını verdiğim şekilde modelinize şu eklemeyi yapabilirsiniz;

protected $casts = [
    'custom_date' => 'datetime:Y-m-d',
];

Umarım bu kaynaklar ve örnekler yardımcı olur. İyi günler dilerim :slight_smile:

Teşekkürler deneyeceğim en yakın zamanda.