Date (Tarih) Kütüphanesi

Date kütüphanesi, tarih ile ilgili işlemleri kolayştıracak bir dizi araç içerir.

  1. Tarih Bilgilerine Erişme
  2. Gelecek Zaman Tarih Hesaplama
  3. Geçmiş Zaman Tarih Hesaplama
  4. Tarih Karşılaştırma
  5. Okunabilir Tarih Farkını Öğrenme

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