Geri Dön   Forum Ti > Programlama Dilleri ve İnternet > Web Geliştirme Dilleri
Üye Ol Üye Listesi Takvim Forumları Okundu İşaretle

Web Geliştirme Dilleri İnternet sitesi geliştirme için kullanılan araçlar ve programlama dilleri... ASP & ASP.NET & PHP & CSS & HTML & SQL & Java Script

Cevap
 
Konu Araçları
Eski 08.06.2007   #1 (permalink)
 
Katılma Tarihi: Şub 2006
Nereden: Bursa/es-es
Yaş: 23
Mesajlar: 1,780
Varsayılan PHP'de Tarih ve Zaman Kavramlarını Anlamak, Türkçe Tarih Çıktısı Yaratmak...

Problem : Zaman pulunu (timestamp) sekillendirmek ve ornegin AA/GG/YYYY formatina getirmek isitiyorsunuz.


Cozum: Bir UNIX zaman pulunu sekillendirmek icin PHP icerisindeki en verimli yol date () veya strftime () fonkasiyonlarindan birini kullanmaktir.Her iki fonksiyonda opsiyonel olarak zaman pulunu argument olarak alabilirler.






Ornek:



<?php



/*
* Benim dogdugum gun'e ait zaman pulunu sekillendiriyorum...
*/



$tarih = date ("l F j", 404107200);



/*
* Ayni seyi yapiyorum ama tek fark bu fonksiyon yerel zaman duyarli
* yani o anda gecerli dil Turkce ise tarih Turkce olarak yazdiriliyor...
*/



$tarih1 = strftime ("%A %B %d", 404107200);



?>



date () fonksiyonu ile zaman pulunu sekillendiriken elinizde cok fazla alternatif vardir.Simdi bu alternatiflere goz gezdirelim :






a "**" veya "pm" formatini gosterir.
A "**" veya "PM" formatini gosterir.
d Gunun degerini iki basamakli olarak gosterir. "01" den "31" e kadar
D Gunun degerini uc haneli kullanarak gosterir. "Fri" gibi
F Ayin degerini tam olarak gosterir."January" gbi
h Saatin degerini 12 saat formatinda gosterir."01" den "12" ye kadar
H Saatin degerini 24 saat formatinda gosterir."01" den "23" e kadar
g Saatin degerini 12 saat formatinda sifir kullanmadan gosterir."1" den "12" ye kadar
G Saatin degerini 24 saat formatinda sifir kulllanmadan gosterir."0" dan "23" e kadar
i Dakikanin degerini gosterir."00" dan "59" 'a kadar
j Gunun degerini sifir kullanmadan gosterir."1" den "31" 'e kadar
l Gunun degerini text olarak gosterir."Friday" gibi,
L Boolean olarak "artikyil" icin "0" veya "1" degerini alir
m Ayin degerini gosterir."01" den "12" ye kadar
n Ayin degerini sifirlar olmadan gosterir."1" den "12" ye kadar
M Ayin text degerini ilk uc harfini kullanarak gosterir."Jan" "Feb" gibi
s Saniyenin degerini gosterir."00" dan "59" a kadar
S Ingilizce tarih icin tanimlanan "th" "nd" gibi kisaltmalari gosterir.
t Ayin icindeki gun adedini verir."28" den "31" e kadar
T Server icin Zaman dilimini gosterir."MDT" gibi
w Gunun degerini sayi olarak gosterir."0" pazardan "6" cumartesiye kadar.
Y Yilin degerini 4 digit olarak gosterir."1999" gibi
y Yilin degerini 2 digit olarak gosterir."99" gibi
z Yil icinde gunun kacinci gunu oldugunu gosterir."0" dan "365"e kadar
Z Zaman diliminde saniye olarak otelemeyi gosterir.(-43200 den 43200)










Yukarida gorulen secenekleri date () fonksiyonu icinde aralarinda herhangi bir ayrima isareti koyarakda kullanabilirsiniz :






<?php
print date ("n/j/Y");
?>




Yukarida gorulen kod parcasi ile o andaki tarih "Ay/Gun/Yil" formatinda ekrana yazilacaktir.



Gordugunuz gibi yukaridaki sekilde kullanildiginda o anda gecerli olan tarih ekrana yazdirilmaktadir.Bu durumda zaman pulunu atrgument olarak fonksiyona gecirmenize gerek yoktur.



Zaman Pulu Nedir?



Ocak 1 ,1970 yilindan beri gecen zamanin saniye cinsinden degeridir.Sizin bu zamani saydirmaniz veya tarafinizdan ek bir islemin yapilmasina gerek yoktur.Cogu UNIX zaman pulu zaten bu formatta hazirdir.Tek yapilmasi gereken date () fonksiyonu ile anlamli bir tarihe donusturmektir.



Eger zaman pulunu olusturmak ve 1 Ocak 1970, tarihinden istediginiz bir zamana kadar gecen zamani saniye cinsinden hesaplatmak ve zaman pulunu kendiniz olusturmak istiyorsaniz mktime () komutunu kullaniniz :






int mktime(int hour, int minute, int second, int month, int day, int year, int [is_dst]);




int :integer yani sayisal veri anlamindadir.



int mktime demek fonksiyondan donen degerin sayisal veri tipinde oldugunu soylemek icindir.









hour : saat



minute : dakika



second : saniye



month : ay



day : gun



year : yil



[is_dst] : Bu surede gecen ve saatlerin ileri-geri alinmasindan (enerji tassarufu icin) dogan farklarin da hesaba katilmasini istiyormusunuz?



strftime () fonksiyonu ile yerel zaman ayarlarina duyarli tarih formati olusturmak



Eger programin icinde setlocale () komutu ile yerel dili belirli bir ulkenin lacak sekilde ayarlarsaniz (ornegin Turkiye icin tr_TR) bu durumda strftime () fonksiyonu o ulkenin tarih formatini kullanacaktir :








<?php



setlocale('LC_ALL','tr_TR');



$tarih = "%A %B %d %Y @ %I:%M%p %Z";



print strftime ($tarih);



?>





Bu kucuk programin ciktisi soyledir :






Cuma Eylul 07 2001 @ 02:03 OS EDT




(Bilgisayariniza Turkce dil destegi yuklemeniz gereklidir.Bu durumda strftime fonksiyonu kullanildiginda ornegin "friday" yerine turkce olarak "cuma" goruntulenir.Ayni sekilde ay isimleride turkcelesir...)



strftime () fonksiyonu ile kullanabilceginiz secenekleri asagidaki listede topladim.Bu kisim ingilizce ama yukarida date () icin yaptigim ornekten fayddalanarak veya secenekleri tek tek deneyerek nasil calistiklarini gorebilirsiniz :






· %a - abbreviated weekday name according to the current locale
· %A - full weekday name according to the current locale
· %b - abbreviated month name according to the current locale
· %B - full month name according to the current locale
· %c - preferred date and time representation for the current locale
· %C - century number (the year divided by 100 and truncated to an integer, range 00 to 99)
· %d - day of the month as a decimal number (range 01 to 31)
· %D - same as %m/%d/%y
· %e - day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')
· %h - same as %b
· %H - hour as a decimal number using a 24-hour clock (range 00 to 23)
· %I - hour as a decimal number using a 12-hour clock (range 01 to 12)
· %j - day of the year as a decimal number (range 001 to 366)
· %m - month as a decimal number (range 01 to 12)
· %M - minute as a decimal number
· %n - newline character
· %p - either `**' or `pm' according to the given time value, or the corresponding strings for the current locale
· %r - time in a.m. and p.m. notation
· %R - time in 24 hour notation
· %S - second as a decimal number
· %t - tab character
· %T - current time, equal to %H:%M:%S
· %u - weekday as a decimal number [1,7], with 1 representing Monday
· %U - week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week
· %V - The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.
· %W - week number of the current year as a decimal number, starting with the first Monday as the first day of the first week
· %w - day of the week as a decimal, Sunday being 0
· %x - preferred date representation for the current locale without the time
· %X - preferred time representation for the current locale without the date
· %y - year as a decimal number without a century (range 00 to 99)
· %Y - year as a decimal number including the century
· %Z - time zone or name or abbreviation
· %% - a literal `%' character
staticiation Şuanda Forumda Değil   Alıntı yaparak cevapla
Cevap


Şu Anda Konuyu İnceleyen Aktif Kullanıcılar: 1 (0 üye ve 1 misafir)
 
Konu Araçları


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
tarih karikatürleri CoolmanJr Tarih 29 31.12.2007 22:00
SQL sorgulamada belli Tarih veya tarih aralığını listelemek... staticiation Programlama & Geliştiriciler için 0 19.06.2007 01:20
Dosya zaman, tarih ve uzunluk bilgileri...vb staticiation Programlama & Geliştiriciler için 0 09.06.2007 18:51
Tarih Nedir ? CoolmanJr Tarih 0 30.05.2007 22:38
Tarih Nedir? The Answer Tarih 0 14.01.2007 18:57


Şu anki forum saati: 23:14.


cnt hizmet sağlayan firma
ForumTi.com'un yapımı ve yayınlanması CNT'ye aittir.
Sitedeki içerikleri foruma ücretsiz şekilde üye olabilen ziyaretçiler oluşturur. Bu içeriklerin sorumluluğu yazana aittir.
Eğer yasak ve aykırı içerik tespit edilirse site yöneticilerine bu konular bildirilir ve kaldırılır. Site yönetimi haberdar edildiğinde sonuç alınamaz ise servis sağlayıcı CNT'ye bildiride bulunabilirsiniz.
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265