Navigate / search

Php – Server İle Tarih Saat Farkı’ nı Düzeltme

Server İle Saati Farkı’ nı Düzeltme

Kullandığımız serverdaki saat ile bizim bulunduğumuz ülkedeki saat her zaman aynı olmayabilir. Farklı ülkelerden aldığınız hostinglerin saati kendi yerel saatlerine göre ayarlanmıştır.Buda sizin için bir sıkıntı olabilir.

Fakat Php her zamanki gibi kolaylığını bize gösteriyor.Ve ufak bir fonksiyon ile bu sorunu ortadan kaldırıyor.
İlk önce date ile ekrana Tarih saatimizi yazdıralım.

1
echo date("d-m-Y H:i:s");

ekrana 26-01-2011 15:05:45 yazdı.Ama bu bizim yerel saatimiz değil.Şimdi fonksiyonumuzu uygulayıp date ile tarih ve saati yazdıralım

1
2
putenv("TZ=Europe/Istanbul");
echo date("d-m-Y H:i:s");

Eveeet.Gördüğünüz Gibi Artık Tarih Ve Saatimiz Yerel Saatimiz Olarak Ekrana Geldi.

putenv fonksiyonunu header’ımıza yerleştirdiğimizde bütün problemlerimiz çözülmüş olacak.

Php ‘de Tarih ve Saat Verisi Alma getdate()

Tarih ve saat verisi alırken kullandığımız getdate() fonksiyonu diğer fonksiyonlardan kullanımı daha kolay ve hepsini kapsayan fonksiyondur.Hepsini kapsadığı gibide birkaçtane fazla özelliğide vardır.Şimdi zaman kaybetmeden getdate() fonksiyonunu inceleyelim.

getdate() fonksiyonuda localtime() fonksiyonu gibi bir dizi değer döndürür.Bu değerler yine farklı farklı zaman verilerini belirtir.Hemen bu fonksiyonu bir örnekle görelim.

1
2
3
4
$getdate=getdate();
foreach ($getdate as $anahtar=>$deger){
	echo $anahtar."=".$deger."<br>";
}

getdate() ile döndürdüğümüz değerler aşağıdaki gibi olacaktır.Gördüğünüz gibi bu dizi localtime() fonksiyonunun döndürdüğü diziden farklı olarak dizi anahtarları sayı değilde metin olarak ifade edilmiştir.Buda karışıklığı önlemek bir bakışta anlamak hata yapmamak için önemlidir.

seconds=33
minutes=58
hours=22
mday=25
wday=0
mon=4
year=2010
yday=114
weekday=Sunday
month=April
0=1272225513

bu değerlerin anlamları şöyledir.

seconds=33  	saniye
minutes=58	        dakika
hours=22	       saat
mday=25     	ayın kaçıncı günü
wday=0		haftanın kaçıncı günü (0-pazar, 1-pazartesi...)
mon=4		hangi ay (1-ocak, 2-şubat...)
year=2010	          yıl
yday=114		yılın kaçıncı günü (0 dan başlayarak....)
weekday=Sunday günün adı 
month=April        ayın adı
0=1272225513Unix sistemlerinde Epoch biçiminde
		zaman bilgisi 01.01.1970 
		saat:00:00:00 itibaren şu ana kadar geçen saniye

Php ‘de Tarih ve Saat Verisi Alma time() – localtime()

Php proglamla dilinde tarih ve saat almanın birçok yolu vardır.Basit şekillerde tarih saat verisi alabilirisiniz.Fakat tarih ve saat konusunu çok iyi bir şekilde öğrenmeniz birçok uygulamada tarih ve saatle çalışırken size faydalı olacaktır.Zaman verisi alırken birden fazla fonksiyon ve bu fonksiyonların parametreleri mevcuttur.Tüm bu fonksiyonlar ve fonksiyonlarda geçerli olan parametleri iyi kavrarsanız başarılı bir şekilde tarih ve saat ile çalışabilirsiniz.

Tarih ve saat sayı değildir metin değildir zamanla ilgili bilgi veren veridir.Zamanla ilgili göreceğimiz ilk komut time() ‘dır.time() fonksiyonunu print ile yazdırdığımızda bu fonksiyondan bize bir bilgi verir.Bu veri 01.01.1987 saat 00:00′dan şu ana kadar geçen saniye sayısını verir.Bu veriyi ilerde kullanmayı “Tarih ve Saatlerin Biçimlendirilmesi” konusunda göreceğiz

print time();
1272220285

time() fonksiyonu istediğimiz saat verisini gördüğünüz gibi vermez.
Şu andaki zaman verisini almak için localtime() fonksiyonunu kullanabiliriz.Localtime() fonksiyonundan dönen veri bir dizi olarak döner.Dizileri ekrana yazdırırken foreach ile nasıl yazdırdığımızı öğrenmiştik.Unuttuysanız bu konuya mutlaka bir göz atın.
Şimdi localtime() ‘ı bir örnekle gösterelim ve fonksiyondan dönen veriyi inceleyelim;

$lc=localtime();
foreach ($lc as $anahtar=>$deger){
	echo $anahtar."=".$deger."<br>";
}

Sonucu; (benim bu fonksiyonu kullandığımdaki zaman göre)

0=12
1=37
2=21
3=25
4=3
5=110
6=0
7=114
8=1

Sonuç bu şekilde dönecektir.Localtime() fonksiyonunu ilk defa deniyorsanız burdaki tüm sayılar anlamsız gelecektir.Anlamlı hale getirmek için ufak bir döküman gösteriyorum.

bugün 25 nisan 2010 cuma saat 21:37:12 iken
localtime dizisinde tutulan değerlerin anlamları
-------------------------------------------------------
0=12	saniye
1=37	dakika
2=21	saat
3=25 ayın kaçıncı günü
4=3	yılın hangi ayı (0-ocak, 1-şubat...)
5=110	1900'den itibaren kaçıncı yıl
6=0	haftanın kaçıncı günü (0-pazar, 1-pazartesi...)
7=114	yılın kaçıncı günü
8=1	gün ışığı uygulaması (1:aktif, 0:pasif)

Diziden dönen veriyi ve verdiğim ufak dökümanı incelerseniz artık bu sayılar anlamlı bir hale gelecektir.
Konu biraz uzuyor ama php‘ye hakim olmak istiyorsanız hiç bir konuyu atlamanızı tavsiye etmiyorum.Tarih ve Saat verisi ile ilgili tüm fonksiyonlar ve parametleri öğrendikten sonra zevkli bir hal alacaktır.

Php Tarih Ve Saat Verisi Alma

Programımız içinde ister o sıradaki tarih ve saati browser penceresinde göstermek için ister yapılan işlemlerin ne zaman yapıldığını kaydetmek için veya farklı sebeplerden dolayı tarih ve saat verisi almamız gerekbilir.bu veriyi aldığımızda bize gelen tarih ve saat verisi sunucunun o sıradaki tarih ve saat verisi olacaktır.Eğer sunucu destekliyorsa biz zaman verisini kendi bölgemize göre ayarlayabiliriz.Sunucumuzun bu desteğinin olup olmadığını ufak bir kod bloğuyla test edebiliriz.İsterseniz ilk önce bu kod bloğunu görelim.

1
2
3
4
<?php 
setlocale ("LC_TIME", "TR");
print (strftime ("Türkçe bugün günlerden: %A "));
?>

Sonuç olarak Ekrana çıkan “Türkçe bugün günlerden PAZAR ” gibiyse yani bugunu türkçe olarak gösteriyorsa sunucumuzun bu desteği vardır.

Tarih ve Saat verisini almak için getdate() Fonksiyonunu kullanacağız.

1
$saat_tarih = getdate()

getdate() fonksiyonu o andaki tarih ve saat verilerini bir dizi halinde değişkenimize aktaracaktır.
Bu durumda, $saat_tarih dizi değişkeninde sırasıyla şu bilgiler yer alır:
• 32 saniye
• 57 dakika
• 6 saat
• 30 ayın gün sayısı (1-31)
• 0 haftanın gün sayısı (1-7)
• 7 ayın sayısı (1-12)
• 2000 yıl
• 211 yılın kaçıncı günü
• Sunday günün adı
• July ayın adı
• 964929452 Unix sistemlerinde Epoch biçiminde zaman bilgisi