|
| Makaleler |
| Toplam Makale |
3330 |
| Yayında |
3150 |
| Bekleyenler |
180 |
| Görüntüleme |
13322230 |
|
|
|
PHP'de tarih ve zaman kavramlarini anlamak, Turkce tarih ciktisi yaratmak
Konu: PHP Yazar: Serkan Tarih: 01/04/02
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:
date () fonksiyonu ile zaman pulunu sekillendiriken elinizde cok fazla alternatif
vardir.Simdi bu alternatiflere goz gezdirelim :
a "am" veya "pm" formatini gosterir.
A "AM" 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 :
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 :
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 `am' 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
Daha fazla bilgi icin bakiniz :
http://www.php.net/manual/en/function.date.php
http://www.php.net/manual/en/function.gmdate.php
http://www.php.net/manual/en/function.mktime.php
http://www.php.net/manual/en/function.setlocale.php
http://www.php.net/manual/en/function.strftime.php
http://www.opengroup.org/onlinepubs/7908799/xsh/strftime.html
Saygilar,
Serkan Hadi Ceylani serkan@turk-php.com
Bu makale hakkında ek bilgi eklemek için buraya tıklayınız
Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.
Eklenme tarihi: 3-2-2006 Okunma: 3550
|
| Bu Makaleye Verilen Puan: |
Bu makaleye puan verilmemiş.
|
Kullanıcı Yorumları
Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
İlgili Dökümanlar
|
|
|