Tarih-saat İşlemleri
Bu sayfada zaman yöntem kodları üzerinde duracağız. Bu kodlar zaman birimlerini ifade etmekte, nesneleri zamana göre sıralamakta ve sorgulamakta kullanılır
Zaman Değişkeni Tanımlama ve Yürürlükteki Zaman Değerini İfade Etme
İlk kodumuz: new Date(). Bu kod değişkenin zaman değeri taşıdığını belirtiyor. Ve değişkene bilgisayarın saatinde yer alan zaman değerini veriyor. Aşağıdaki kodlarla bu zaman değerini özelleştirebiliriz.
getDate() Ayın kaçı olduğunu gösterir.
tarih.getDate()
getMonth() Hangi ayda olduğumuzu gösterir. Ocak için 0, Şubat için 1, Mart için 2, ..., Aralık için 11 değerini verir.
tarih.getMonth()
getFullYear() İçinde bulunduğumuz yılı dört rakamıyla gösterir.
tarih.getFullYear()
getHours() Saat değerini ifade eder. 24'lük sistem kullanılır.
tarih.getHours()
getMinutes() Dakika değerini ifade eder.
tarih.getMinutes()
getSeconds() Saniye değerini ifade eder.
tarih.getSeconds()
getUTCHours() UTC saat değerini ifade eder. UTC bir zaman standardı; NASA falan kullanıyor olsa gerek.
tarih.getUTCHours()
getUTCMinutes() UTC dakika değerini ifade eder.
tarih.getUTCMinutes()
getUTCSeconds() UTC saniye değerini ifade eder.
tarih.getUTCSeconds()
getDay() Haftanın günlerini ifade eder. Pazar için 0, Pazartesi için 1, Salı için 2, ..., Cumartesi için 6 değerini verir.
tarih.getDay()
Eğer bu kodların tanımlandığı değişken önceden var değişken = new Date() şeklinde tanımlanmazsa çalışmaz. Şimdi bir uygulamayla tüm bu kodların nasıl sonuç verdiğini görelim. Uygulama sonuçlarını, bilgisayarınızın saatiyle karşılaştırın.
<html>
<head>
<title>Zaman Komutları</title>
</head>
<body>
<h3>Zaman Komutları ve Sonuçları</h3>
<script language="JavaScript">
var zaman = new Date() document.write("<b>Zaman</b>: " + zaman) document.write("<br><b>getFullYear</b>: " + zaman.getFullYear()) document.write("<br><b>getDate</b>: " + zaman.getDate()) document.write("<br><b>getMonth</b>: " + zaman.getMonth()) document.write("<br><b>getHours</b>: " + zaman.getHours()) document.write("<br><b>getMinutes</b>: " + zaman.getMinutes()) document.write("<br><b>getSeconds</b>: " + zaman.getSeconds())
document.write("<br><b>getUTCHours</b>: " + zaman.getUTCHours()) document.write("<br><b>getUTCMinutes</b>: " + zaman.getUTCMinutes()) document.write("<br><b>getUTCSeconds</b>: " + zaman.getUTCSeconds()) document.write("<br><b>getDay</b>: " + zaman.getDay())
</script>
</body>
</html>
Uygulamayı dikkatli inceleyen okuyucular, tek rakamlı zaman birimlerinin önüne 0 gelmediğini görmüşlerdir. Yani saniye 08 yerine 8 diye geçer. (Saat yapmak isteyenlerin dikkatine.)
Bir başka özellik de, bu kodlarla sadece sayfanın çalıştırıldığı anın zamanı gösteriliyor.
Örneğin saniye ifadesi olduğu gibi duruyor ve çalıştırıldığı zamanın saniyesini gösteriyor. (Saat yapmak isteyenlerin bir daha dikkatine.)
Zaman Değeri Atama
İstersek zaman ayarlarıyla oynayabilir, istediğimiz tarihe veya saate kurabiliriz. Bu kurma işlemi için aşağıdaki komutlar kullanılır.
setFullYear() Girilen yılı ayarlar.
tarih.setFullYear("1963")
setMonth() Girilen ayı ayarlar.
tarih.setMonth("5")
setDate() Ayın gününü ayarlar.
tarih.setDate("13")
setHours() Saati ayarlar.
tarih.setHours("10")
setMinutes() Dakikayı ayarlar.
tarih.setMinutes("34")
setSeconds() Saniyeyi ayarlar.
tarih.setSeconds("22")
setUTCHours() UTC saatini ayarlar.
tarih.setUTCHours("10")
setUTCMinutes() UTC dakikasını ayarlar.
tarih.setUTCMinutes("34")
setUTCSeconds() UTC saniyesini ayarlar.
tarih.setUTCSeconds("22")
Dikkat ederseniz zamanı ayarlarken haftanın günlerini ayarlamıyoruz. Bilgisayar ayarlanan yıl, ay ve güne göre haftanın gününü hesaplıyor. Şimdi uygulamamızı inceleyelim; her ayarlamadan sonra zaman yeniden gösteriliyor.
<html> <head> <title>Zaman Komutları</title> </head> <body> <h3>Zaman Komutları ve Sonuçları</h3> <script language="JavaScript"> var zaman = new Date() document.write("<b>Zaman</b>: " + zaman) document.write("<br><b>getFullYear</b>: " + zaman.getFullYear()) document.write("<br><b>getDate</b>: " + zaman.getDate()) document.write("<br><b>getMonth</b>: " + zaman.getMonth()) document.write("<br><b>getHours</b>: " + zaman.getHours()) document.write("<br><b>getMinutes</b>: " + zaman.getMinutes()) document.write("<br><b>getSeconds</b>: " + zaman.getSeconds()) document.write("<br><b>getUTCHours</b>: " + zaman.getUTCHours()) document.write("<br><b>getUTCMinutes</b>: " + zaman.getUTCMinutes()) document.write("<br><b>getUTCSeconds</b>: " + zaman.getUTCSeconds()) document.write("<br><b>getDay</b>: " + zaman.getDay()) </script> </body> </html>
Zaman Aralığı
Fonksiyonu harekete geçiren olayın oluşmasından belli miktar zaman geçtikten sonra birşey oluşmasını istiyorsak, setTimeout(..., ...) komutu kullanılır.
Örneğin bir düğmeye basıldıktan sonra uyarı kutusunun çıkmasını istiyorsak:
setTimeout("fonksiyon()", zaman) zaman sonra fonksiyonu calistirir);
setTimeout("alert('Bu mesaj 3 saniye sonra çıkar.')", 3000)
İlk değer parantez içinde bir JavaScript kodudur, ikinci değer ise ilk değerin ne kadar süre sonra oluşacağını belirleyen, mili saniye cinsinden zaman değeridir. (1 saniye = 1000 mili saniye) Bu komut ile uyarı kutusu 3 saniye bekledikten sonra görünecektir.
setTimeout komutu daha çok zaman aralıklarıyla tekrar eden hareketler oluşturmak için kullanılır. Aşağıdaki uygulamamıza bakalım:
<html> <head> <title>setTimeout</title> <script language="JavaScript"> var metin; function Slogan(n) { if(n%2==1) {metin="EN BÜYÜK"} else {metin="ALTAY!!!"} katman.innerHTML=metin setTimeout("Slogan(" + (n+1) + ")", 1000); } </script> </head> <body onload="Slogan(1)"> <div id="katman" align="center">Deneme</div> </body> </html>
Bu uygulama ile 1000 milisaniye (1 saniye) arayla "EN BÜYÜK" ve "ALTAY!!!" yazıları birbirinin yerine geçiyor. Bunu yapmak için Slogan() fonksiyonunun içinde tekrar Slogan() fonksiyonu çağrılarak bir döngü oluşturdum. Örnek uygulamalar bölümünde bu kullanım tarzını bolca göreceksiniz.
setInterval() yöntemi, sayfanın belirli aralıklarla -- örneğin, her saniye gibi -- belirli bir işlevi geri arayacağını belirtir. Konu bu zamanlayıcılar olduğunda çoğu tarayıcı iyi olduğunu iddia eder, ancak temel olarak JavaScript tek iş parçacıklı çalıştığından bunu nadiren başarırlar. Bir saniye değerini ayarlarsanız, geri aramayı 1 saniye, 1.2 saniye ya da 9 saniye sonra alabilirsiniz.
SetTimeout() Komutu :
SetTimeout() komutu JavaScripte zamanlama işlemleri için kullanılır. Örneğin belli zaman periyotlarında belli komut kümelerini çalıştırmak yada işlem akışında zamansal gecikme sağlamak için kullanılır.
Komut belirilen komutların, milisaniye cinsinden verilenen zaman sonunda çalıştırılması mantığı ile çalışır. Genllikle kullanılacak komutlar bir function içine yerleştirilir ve setTimeout() komutu ile bu function çağrılır. Kullanım formatı aşağıdaki gibidir.
setTimeout('komutlar',zaman)
Örnek: 0,5 saniyelik peryotlarla sonsuza doğru 1'er 1'er sayan scripti yazalım.
<html>
<script>
var x = 0
function say()
{
document.form1.T1.value=x
x=x+1
setTimeout('say()',500)
}
</script>
<body onload=say()>
<center>
<p><b>setTimeout() Komutu Örneği</b></p>
<form name="form1">
<input name="T1">
</form>
</body>
</html>
Scriptin çalışan örneğini görmek için tıklayın!..
clearTimeout() Komutu : clearTimeout() komutu, setTimeout() komutu ile başlatılan zamanlamayı sıfırlamak ve zaman periyodu ile çalışan komutları iptal etmek için kullanılır.
Bu komutlar bir arada kullanılırken genellikle setTimeout() komutu bir değişkene atanır ve clearTimeout() komutu ile bu değişken ile birlikte kullanılır. setTimeout() komutunun atandığı değişken var komutu ile tanımlanmadan da çalışır.
Örnek: Yukarıdaki örnekte yaptığımız scripte buton kontrolü ile çalıştırılıp, durdurulabilme özelliği ekleyelim.
<html>
<script>
var x = 0
function say()
{
document.form1.T1.value=x
x=x+1
sayac=setTimeout('say()',500)
}
function dur()
{
clearTimeout(sayac)
}
</script>
<body>
<center>
<p><b>clearTimeout() Komutu Örneği</b></p>
<input type="button" value="Başlat" onclick=say()>
<input type="button" value="Durudur" onclick=dur()><br>
<form name="form1">
<input name="T1">
</form>
</body>
</html>
Kaynak www.volkanderinbay.net/ders/dersjscr.asp , www.fazlamesai.net/index.php , www.sadakat.net/bilgisayar/web_tasarim/javascript/index12.htm