Merhaba. Bu sayfada olduğunuza göre php zaman fonksiyonlarını araştıyorsunuz demektir. Bir projede zaman fonksiyonu olmazlardan biri. En basiti formdan gelen verilerin ne zaman, hangi gün içerisinde girildiğini bilmek isteyeceğiz. Kusura bakmayın seo için biraz lafı uzatacağım : ) isterseniz sadede 👇 gidebilirsiniz. Php zaman fonksiyonları zamanı sunucdan alır. Javascript gibi tarayıcı taraflı çalışan programlar ise client bilgisayarlardan. Bu sebepten sunucu taraflı zaman fonksiyonlarını kullanmak en mantıklısız neden derseniz client bilgisayarın zamanı hatalı olabilir. Bir sunucu kendi zaman dilini varsayılan olarak belirler. Artık hangi kıtada ve saat diliminde ise. Siz kullanmak istediğiniz zaman dilimini belirlemeniz gerekmektdir. Php zaman fonksiyonları geniş bir yelpazeye sahiptir. Tavsiyem istedğiniz bir php zaman fonksiyonunu seçin ve kendinize yeni bir fonksiyon yazın veya sınıfta bir metod oluşturun.
SADET
Öncelikli olark bulundunğunuz zaman dilimini belirtmeniz gerekmektedir. Bunu aşağıdaki fonksiyon ile yapacaksınız.
1 | date_default_timezone_set('Europe/Istanbul'); //İstanbul Türkiye |
Diğer saat dilimlerin ise aşağıdadır.
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka |
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba |
America/Ensenada | America/Fort_Wayne | America/Indianapolis | America/Jujuy |
America/Knox_IN | America/Louisville | America/Mendoza | America/Montreal |
America/Porto_Acre | America/Rosario | America/Santa_Isabel | America/Shiprock |
America/Virgin | Antarctica/South_Pole | Asia/Ashkhabad | Asia/Calcutta |
Asia/Chongqing | Asia/Chungking | Asia/Dacca | Asia/Harbin |
Asia/Istanbul | Asia/Kashgar | Asia/Katmandu | Asia/Macao |
Asia/Rangoon | Asia/Saigon | Asia/Tel_Aviv | Asia/Thimbu |
Asia/Ujung_Pandang | Asia/Ulan_Bator | Atlantic/Faeroe | Atlantic/Jan_Mayen |
Australia/ACT | Australia/Canberra | Australia/LHI | Australia/North |
Australia/NSW | Australia/Queensland | Australia/South | Australia/Tasmania |
Australia/Victoria | Australia/West | Australia/Yancowinna | Brazil/Acre |
Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic |
Canada/Central | Canada/Eastern | Canada/Mountain | Canada/Newfoundland |
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | CET |
Chile/Continental | Chile/EasterIsland | CST6CDT | Cuba |
EET | Egypt | Eire | EST |
EST5EDT | Etc/GMT | Etc/GMT+0 | Etc/GMT+1 |
Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2 |
Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 |
Etc/GMT+7 | Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 |
Etc/GMT-1 | Etc/GMT-10 | Etc/GMT-11 | Etc/GMT-12 |
Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2 | Etc/GMT-3 |
Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7 |
Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich |
Etc/UCT | Etc/Universal | Etc/UTC | Etc/Zulu |
Europe/Belfast | Europe/Nicosia | Europe/Tiraspol | Factory |
GB | GB-Eire | GMT | GMT+0 |
GMT-0 | GMT0 | Greenwich | Hongkong |
HST | Iceland | Iran | Israel |
Jamaica | Japan | Kwajalein | Libya |
MET | Mexico/BajaNorte | Mexico/BajaSur | Mexico/General |
MST | MST7MDT | Navajo | NZ |
NZ-CHAT | Pacific/Johnston | Pacific/Ponape | Pacific/Samoa |
Pacific/Truk | Pacific/Yap | Poland | Portugal |
PRC | PST8PDT | ROC | ROK |
Singapore | Turkey | UCT | Universal |
US/Alaska | US/Aleutian | US/Arizona | US/Central |
US/East-Indiana | US/Eastern | US/Hawaii | US/Indiana-Starke |
US/Michigan | US/Mountain | US/Pacific | US/Pacific-New |
US/Samoa | UTC | W-SU | WET |
Zulu |
Date() Fonksiyonu Kullanımı
Php zaman işlemlerinde getdate() fonksiyonu ile date() fonksiyonu kullanılır.
Sabitler ve açıklamaları
a | 12 saat esasına dayanan Anglo-Sakson sistemlerinde öğleden önce (“am”) veya öğleden sonra (“pm”) işaretinin verilmesini sağlar. |
A | Aynı işaretlerin büyük harfle yazılmasını sağlar. |
d | İki haneli gün sayısı, tek haneli günlerin önüne sıfir konur: “01” – “31” |
D | Üç haneli gün adı kısaltması: “Paz” |
F | Uzun ay adı: “Ocak” |
h | 12 saatlik sistemde saat: “Ol” – “12” |
H | 24 saatlik sistemde saat: “00” – “23” |
g | 12 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat:” 11 – “12” |
G | 24 saatlik sistemde tek haneli saatlerin önüne sıfir konmadan saat: “0” – “23”_ |
i | Dakika: “00” – “59” |
j | Tek haneli sayıların önüne sıfır konmadan gün sayısı “1” – “31” |
l | (küçük L harfi) Uzun gün adı: “Cuma” |
L | Artık yıl olup olmadığına ilişkin Boolean (doğru/yanlış) değişken. Artık yıl ise 1,değilse 0, |
m | Tek hanelilerin önüne sıfır konarak ay sayısı: “01” – ”12″ |
n | Tek hanelilerin önüne sıfır konmadan ay sayısı: “1” – “12” |
M | Kısaltılmış ay adı: “May” |
s | Saniye: “00” – “59” |
S | İngilizce (‘ncı anlamına) 2 karakter ek: “th”, “nd” |
t | Belirtilen aym gün sayısı; ”28″ – “31” w |
j | Haftanın gün sayısı: “0” (Pazar veya Pazartesi) – “6” (Cumartesi veya Pazar) |
Y | Dört haneli yıl: “2000” |
y | iki haneli yıl “00” |
z | Yılın gün sayısı: “0” – “365” |
1 2 3 | echo date("d M Y H:i:s");//Ekran çıktısı : 15 Aug 2017 21:50:18 echo "<br>"; echo date("H:i:s"); //Ekran çıktısı: 21:50:18 |
getdate() Fonksiyonu
Tarih zaman bilgisini verir. Değer verildiğinde o verilen değere kadar olan tarihi değilse o anki tarihi dönderir. Verileri dizi olarak dönderir.
1 2 3 | date_default_timezone_set('Europe/Istanbul'); $zaman=getdate(); print_r($zaman); |
mktime() Fonksiyonu
Tarih için Unix zaman damgasını döndürür. Tarih zamanın istediğimiz gibi belirtmemizi sağlar.
mktime(saat,dakika,saniye,ay,gün,yıl);
Fonksiyonun Unix zaman başlangıçı (1 Ocak 1970 00:00:00 GMT) ile başlar.
1 2 3 | $zam=mktime(0,0,0,1,1,1994); echo $zam; echo date('1',$zam); //Ekran Çıktısı : 7573788001 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $tarih=mktime(0,0,0,date('n'),1,date("Y")); echo "<br>".$tarih; //Ekran Çıktısı: 1501538400 echo "<br>"; $ay= date("F"); echo "Bulunduğumuz ay : $ay <br>"; $toplamgun=date("t",$tarih); printf("Bu ayın toplam gün sayısı: %s",$toplamgun); $tam=getdate($tarih); $baslangicGun=$tam["wday"]; printf("<br>Bu ayın ilk gün sayısı ..%s..",$baslangicGun); /* Ekran Çıktısı Bulunduğumuz ay : August Bu ayın toplam gün sayısı: 31 Bu ayın ilk gün sayısı ..2.. */ |
PHP Locatime() Fonksiyonu Kullanımı
Yerel zamanı elde etemede kullanılır.
locatime([int $timestamp[, bool $is_associative]])
$timestamp zamanı ve $is_associative ise trua ya da false mantık operatörüne göre değer
döndürür. Zaman değeri fonksiyona verilmediği zaman geçerli değer time() ile elde edilir.
tm_sec | Saniye |
tm_min | Dakika |
tm_hour | Saat |
tm_mday | Ayın hangi günü olduğu. |
tm_mon | Yılın hangi ayı olduğu, başlagıç 0 ile başlar : örn: Ocak=0, Eylül=11 |
tm_year | 1900’den bu güne keç yıl geçtiği |
tm_wday | Haftanın günü |
tm_yday | Yılın hangi günü olduğu. |
tm_isdst | Gün ışığı tasarruf zaman kaydı |
false değerine göre locatime() fonksiyonunun aldığı anahtarlar.
0 | Saniye
1 | Dakika
2 | Saat
3 | Ayın hangi günü olduğu.
4 | Yılın hangi ayı olduğu, başlagıç 0 ile başlar : örn: Ocak=0, Eylül=11
5 | 1900’den bu güne keç yıl geçtiği
6 | Haftanın günü
7 | Yılın hangi günü olduğu.
8 | Gün ışığı tasarruf zaman kaydı
1 2 3 4 5 | $zaman = localtime(time(),true); echo $zaman["tm_hour"];//Ekran Çıktısı: 23 $zaman = localtime(time(),false); echo $zaman[2];// Ekran Çıktısı : 23 |
strftime() Fonksiyonu Kullanımı
Zaman ve tarih gibi değerleri istediğimiz biçime göre yeniden çıktı olarak dönüştürebileceğimiz
bir dizi formatı sumaktadır. Tablodaki formatlara göre istediğmiz değerleri elde edebiliriz.
%a | Yerele özgü kısaltılmış gün ismi. |
%A | Yerele özgü gün ismi. |
%b | Yerele özgü kısaltılmış ay ismi. |
%B | Yerele özgü ay ismi. |
%c | Yerele özgü tarih ve saat gösterimi. |
%d | 01 ile 31 arasında bir değer olarak ayın gün numarası. |
%D | %m%d%y biçiminde tarih. |
%e | 1 ile 31 arasında bir değer olarak ayın gün numarası (tek rakamlı sayıların önüne 0 -konmaz). |
%F | %Y-%m-%d biçimimde tarih. |
%g | 00 ile 99 arasında yıl numarasıdır (1988 için 88,2009 için 09,2010 için 10) |
%h | %b ile aynıdır ve yerele özgü kısaltılmış ay ismidir. |
%H | 00 ile 23 arasında 24 saatlik saat gösterimi. |
%I | 01 ile 12 arasında 12 saatlik saat gösterimi. |
%j | i 001 ile 366 arasında yılın gün numarası. |
%k | O ile 23 arasında 24 saatlik saat gösterimi (tek rakamlı sayıların önüne 0 konmaz) |
%I | 1 ile 12 arasında bir sayısal değer olarak 12 saatlik saat gösterimi (tek rakamlı sayılarınönüne 0 konmaz). |
%m | 01 ile 12 arasında ayın numarası. |
%M | 00 ile 59 arasında dakika değeri. |
%n | Tek bir \n (satır sonu) karakteri. |
%p | Verilen değere bağlı olarak yerele özgü AM veya PM dizgesidir. |
%P | Verilen değere bağlı olarak yerele özgü am veya pm dizgesidir. |
%r | Yerele özgü AM/PM biçimli saat gösterimi (örn, 05:50:22 ÖS) bu biçim %I:%M:%S ]%p biçim dizgesine eşdeğerdir. |
%R | %H:%M biçiminde saat ve dakika. |
%S | 00 ile 60 arasında saniye. |
%t | |Tek bir \t (sekme) karakteri. |
%T | %H:%M:%S biçiminde saat. |
%u | 1 ile 7 arasında haftadaki günün numarası. Pazartesi, haftanın birinci günüdür. |
%U | 00 ile 53 arasında hafta numarası. Yılın ilk Pazar günü ile başlayan hafta yılın ilk 1 haftası sayılır ve 00 ile gösterilir. |
%w | 0 ile 6 arasında haftadaki günün numarası. Pazar, haftanın sıfırına günüdür. |
%u | 00 ile 53 arasında hafta numarası. Yılın ilk Pazartesi günü ile başlayan hafta yılın ilk 1 haftası sayılır ve 00 ile gösterilir. |
%x | Yerele özgü kısa tarih gösterimi. |
%x | Yerele özgü saat gösterimi. |
1 2 3 | setlocale(LC_TIME,'tr-TR','tr','turkish'); echo strftime("%A")."<br />";//Ekran çıktısı : Salı echo strftime("%A %d %B %Y"); |
LC_ALL : Bütün ayıları alır.
LC_COLLATE: Dizgi karşılaştırması
LC_CTYPE :Karakter sınıflaması ve dönümü
LC_MONETARY : Para biçimlemesi
LC_NUMERIC : Ondalık ayraçlar.
LC_TIME :Tarih ve saat biçimi