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…
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
Teşekkürler deneyeceğim en yakın zamanda.