Date (Tarih) Kütüphanesi
Date kütüphanesi, tarih ile ilgili işlemleri kolayştıracak bir dizi araç içerir.
Tarih Bilgilerine Erişme
Herhangi bir tarih bilgisini okumak için önce istenen tarihin tanımlanması gerekmektedir.
# now()
İçinde bulunduğumuz andaki tarihe erişmek için kullanılır. Bu method bir çıktı üretmez. Yalnızda içinde bulunulan tarih ile ilgili işlem yapılacağını kütüphaneye tanıtmış olur.
Date::now();
# set()
Kullanıcı tarafından belirlenen bir tarihe erişmek için kullanılır. Bu method bir çıktı üretmez. Yalnızca hangi tarih ile ilgili işlem yapılacağını kütüphaneye tanıtmış olur.
Date::set('2017-05-11');
# setFromTimestamp()
Unix zaman damgası formatında tarih tanımlamak için kullanılır.
Date::setFromTimestamp(1494509256);
# setYear(), setMonth(), setDay(), setHour(), setMinute(), setSecond()
Tarih formatındaki her bir bilgi, diğerlerinden bağımsız olarak tanımlanabilir.
Date::setYear(2017);
Date::setMonth(5);
Date::setDay(29);
Date::setHour(7);
Date::setMinute(30);
Date::setSecond(48);
# get()
Sisteme tanımlanan tarih bilgisine erişmek için kullanılır. Erişilmek istenen tarih formatı parametre olarak verilebilir. Varsayılan olarak Y-m-d H:i:s formatında çıktı üretir.
Date::now()->get(); // 2017-05-11 16:22:00
Date::set('2015-10-25')->get(); // 2015-10-25 00:00:00
Date::set('2015-10-25')->get('d.m.Y'); // 25.10.2015
# getTimestamp()
Sisteme tanımlanan tarih bilgisine ait Unix zaman damgasına erişmek için kullanılır.
Date::now()->getTimestamp(); // 1494509256
Date::set('2015-10-25')->getTimestamp(); // 1445731200
# getYear(), getMonth(), getDay(), getHour(), getMinute(), getSecond()
Sisteme tanımlanan tarihteki bilgilerin her birine ayrı ayrı erişilebilir.
Date::set('2017-05-01 09:32:00')->getYear(); // 2017
Date::set('2017-05-01 09:32:00')->getMonth(); // 05
Date::set('2017-05-01 09:32:00')->getMonth(false); // 5
Date::set('2017-05-01 09:32:00')->getDay(); // 01
Date::set('2017-05-01 09:32:00')->getDay(false); // 1
Date::set('2017-05-01 09:32:00')->getHour(); // 09
Date::set('2017-05-01 09:32:00')->getHour(24, false); // 9
Date::set('2017-05-01 19:15:00')->getHour(12); // 7
Date::set('2017-05-01 19:15:00')->getMinute(); // 15
Date::set('2017-05-01 19:15:00')->getSecond(); // 00
# getDayString()
Sisteme tanımlanan tarihteki günü öğrenmek için kullanılır. İngilizce sonuç döndürür.
Date::now()->getDayString(); // Thursday
Date::set('2015-10-25')->getDayString(); // Sunday
# getMonthString()
Sisteme tanımlanan tarihteki ay adını öğrenmek için kullanılır. İngilizce sonuç döndürür.
Date::now()->getMonthString(); // May
Date::set('2015-10-25')->getMonthString(); // October
# getDayOfWeek()
Sisteme tanımlanan tarihin haftanın kaçıncı günü olduğunu öğrenmek için kullanılır. Günler 0-6 arası rakamlar ile belirtilir. Başlangıç günü Pazar'dır.
Date::now()->getDayOfWeek(); // 3
Date::set('2015-10-25')->getDayOfWeek(); // 0
# getDayOfYear()
Sisteme tanımlanan tarihin yılın kaçıncı günü olduğunu öğrenmek için kullanılır.
Date::now()->getDayOfYear(); // 220
Date::set('2015-10-25')->getDayOfYear(); // 297
# getDaysInMonth()
Sisteme tanımlanan tarihteki ayın kaç gün çektiğini öğrenmek için kullanılır.
Date::now()->getDaysInMonth(); // 30
Date::set('2015-10-25')->getDaysInMonth(); // 31
Gelecek Zaman Tarih Hesaplama
İçinde bulunulan tarihe gün, ay, yıl, saat, dakika ve saniye cinsinden eklemeler yapılarak yeni tarih hesaplanabilir.
Aşağıdaki örneklerde now() ile tanımlanan tarih 2017-05-12 13:15:00 olarak alınmıştır.
# addYear()
Sisteme tanımlanan tarihe, belirli bir yıl eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addYear(1)->get(); // 2018-05-12 13:15:00
Date::set('2017-05-06')->addYear(2)->get(); // 2019-05-06 00:00:00
# addMonth()
Sisteme tanımlanan tarihe, belirli bir ay eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addMonth(2)->get(); // 2017-07-12 13:15:00
Date::set('2017-05-06')->addMonth(5)->get(); // 2017-10-06 00:00:00
# addDay()
Sisteme tanımlanan tarihe, belirli bir gün eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addDay(10)->get(); // 2017-05-23 13:15:00
Date::set('2017-05-12')->addDay(5)->get(); // 2017-05-17 00:00:00
# addHour()
Sisteme tanımlanan tarihe, belirli bir saat eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addHour(10)->get(); // 2017-05-12 23:15:00
Date::set('2017-05-12 12:17:00')->addHour(5)->get(); // 2017-05-12 17:17:00
# addMinute()
Sisteme tanımlanan tarihe, belirli bir dakika eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addMinute(10)->get(); // 2017-05-12 13:25:00
Date::set('2017-05-12 12:17:00')->addMinute(5)->get(); // 2017-05-12 12:22:00
# addSecond()
Sisteme tanımlanan tarihe, belirli bir saniye eklemek ve yeni tarihe erişmek için kullanılır.
Date::now()->addSecond(30)->get(); // 2017-05-12 13:15:30
Date::set('2017-05-12 12:17:00')->addSecond(30)->get(); // 2017-05-12 12:17:30
Geçmiş Zaman Tarih Hesaplama
İçinde bulunulan tarihten gün, ay, yıl, saat, dakika ve saniye cinsinden eksiltmeler yapılarak yeni tarih hesaplanabilir.
Aşağıdaki örneklerde now() ile tanımlanan tarih 2017-05-12 13:15:00 olarak alınmıştır.
# subtractYear()
Sisteme tanımlanan tarihten belirli bir yıl çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractYear(1)->get(); // 2016-05-12 13:15:00
Date::set('2017-05-06')->subtractYear(2)->get(); // 2015-05-06 00:00:00
# subtractMonth()
Sisteme tanımlanan tarihten belirli bir ay çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractMonth(2)->get(); // 2017-03-12 13:15:00
Date::set('2017-05-06')->subtractMonth(5)->get(); // 2016-12-06 00:00:00
# subtractDay()
Sisteme tanımlanan tarihten belirli bir gün çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractDay(10)->get(); // 2017-05-02 13:15:00
Date::set('2017-05-12')->subtractDay(5)->get(); // 2017-05-17 00:00:00
# subtractHour()
Sisteme tanımlanan tarihten belirli bir saat çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractHour(10)->get(); // 2017-05-12 03:15:00
Date::set('2017-05-12 12:17:00')->subtractHour(5)->get(); // 2017-05-12 17:17:00
# subtractMinute()
Sisteme tanımlanan tarihten belirli bir dakika çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractMinute(10)->get(); // 2017-05-12 13:05:00
Date::set('2017-05-12 12:17:00')->subtractMinute(5)->get(); // 2017-05-12 12:22:00
# subtractSecond()
Sisteme tanımlanan tarihten belirli bir saniye çıkarmak ve yeni tarihe erişmek için kullanılır.
Date::now()->subtractSecond(30)->get(); // 2017-05-12 13:14:30
Date::set('2017-05-12 12:17:00')->subtractSecond(30)->get(); // 2017-05-12 12:17:30
Tarih Karşılaştırma
İki tarihi karşılaştırmak ve aradaki farkı öğrenmek için compare() methodu kullanılır.
Aşağıdaki örneklerde now() ile tanımlanan tarih 2017-05-12 13:15:00 olarak alınmıştır.
# getComparisonArray()
Karşılaştırma sonucunu array olarak döndürür.
Date::now()->compare('2018-04-12')->getComparisonArray();
// Yukarıdaki örnek aşağıdaki gibi çıktı verir
Array
(
[y] => 0 // Yıl
[m] => 10 // Ay
[d] => 28 // Gün
[h] => 12 // Saat
[i] => 35 // Dakika
[s] => 44 // Saniye
[isBefore] => 1 // İlk tarih ikinci tarihten önce mi? (0 - Hayır, 1 - Evet)
[days] => 332 // Toplam gün farkı
)
# getComparisonInYears()
Karşılaştırma sonucundaki yıl farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInYears(); // 0
# getComparisonInMonths()
Karşılaştırma sonucundaki ay farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInMonths(); // 10
# getComparisonInDays()
Karşılaştırma sonucundaki gün farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInDays(); // 332
# getComparisonInHours()
Karşılaştırma sonucundaki saat farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInHours(); // 7980
# getComparisonInMinutes()
Karşılaştırma sonucundaki dakika farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInMinutes(); // 478822
# getComparisonInSeconds()
Karşılaştırma sonucundaki saniye farkını döndürür.
Date::now()->compare('2018-04-12')->getComparisonInSeconds(); // 28729345
# isBefore()
Karşılaştırma sonucunda, tanımlanan tarih, karşılaştırılan tarihten eski ise 1, değil ise 0 döndürür.
Date::now()->compare('2018-04-12')->isBefore(); // 1
# isEqual()
Karşılaştırma sonucunda, tanımlanan tarih ve karşılaştırılan tarih aynı ise 1, değil ise 0 döndürür.
Date::now()->compare('2018-04-12')->isEqual(); // 0
# isBeforeOrEqual()
Karşılaştırma sonucunda, tanımlanan tarih, karşılaştırılan tarihten eski ya da her iki tarih aynı ise 1, değil ise 0 döndürür.
Date::now()->compare('2018-04-12')->isBeforeOrEqual(); // 1
# isAfterOrEqual()
Karşılaştırma sonucunda, tanımlanan tarih, karşılaştırılan tarihten yeni ya da her iki tarih aynı ise 1, değil ise 0 döndürür.
Date::now()->compare('2018-04-12')->isAfterOrEqual(); // 0
Okunabilir Tarih Farkını Öğrenme
Tanımlanan tarihin, günümüzden ne kadar önce olduğunu öğrenmek için humantime() methodu kullanılır.
Date::set('2017-04-12')->humantime(); // 1 ay önce