Kişisel Ağ Sayfası
www.isa-sari.com

ASP’de Tarih ve Saat İşlemleriyle İlgili Fonksiyonlar

1 Kasım 2008 Cumartesi 15 yorum İsa Sarı

ASP programlama dili ile bir İnternet sayfası tasarlarken, tasarlanan sayfa üzerine günün tarihini ya da o anki saati yazdırmak oldukça basittir: date(), time() ve now(). Bu üç fonksiyon kullanılarak tarih ve saat ile ilgili pek çok bilginin sayfa üzerine yazdırım işlemi gerçekleştirilebilmekte, hatta iki zaman arasındaki farkı hesaplama gibi karmaşık işlemler de kolayca yapılabilmektedir. Her ASP programcısının mutlaka bilmesi gereken bu fonksiyonların detaylarını, kullanım alanlarını ve ilgili örnekleri yazının devamında bulabilirsiniz.

Tarihle İlgili Fonksiyon: date()

<%=date()%> şeklinde kullanılır ve o anki tarihi 30.10.2008 şeklinde ekrana yazdırır. Tarih, doğrudan sunucudan alınır ve sunucunun ayarlarına göre dizilimi değişiklik gösterebilir. Türkiye için gg.aa.yyyy (gün.ay.yıl) şeklinde olan tarih formatı, aa.gg.yyyy şeklinde olabileceği gibi gg/aa/yyyy şeklinde de olabilir.

Bu fonksiyon üzerinde - ve + operatörleri ile pek çok işlem yapılabilmektedir. Örneğin; <%=date()-2%> gibi bir ifâde ile 2 gün önceki tarih, <%=date()+4%> gibi bir ifâde ile de 4 gün sonraki tarih ekrana yazdırılabilir.

Fonksiyon üzerindeki işlemler:

day: <%=day(date)%> Günü yazdırır.
month: <%=month(date)%> Ayı yazdırır.
monthname: <%=monthname(month(date))%> Ay ismini yazdırır.
weekday: <%=weekday(date)%> Kaçıncı gün olduğunu yazdırır.
weekdayname: <%=weekdayname(weekday(date))%> Gün ismi yazdırır.
year: <%=year(date)%> Yılı yazdırır.

Saatle İlgili Fonksiyon: time()

<%=time()%> şeklinde kullanılır ve 12:55:00 şeklinde o anki saati ekrana yazdırır. Tarihte olduğu gibi saat de doğrudan sunucu üzerinden alınır ve fonksiyon için, tarih fonksiyonunda geçerli olan her şey geçerlidir. Türkiye için ss:dd:ss (saat:dakika:saniye) şeklinde yazdırılır.

Fonksiyon üzerindeki işlemler:

hour: <%=hour(time)%> Saati yazdırır.
minute: <%=minute(time)%> Dakikayı yazdırır.
second: <%=second(time)%> Saniyeyi yazdırır.

Tarih ve Saatin Ortak Fonksiyonu: now()

<%=now()%> şeklinde kullanılır ve 30.10.2008 12:55:00 şeklinde hem tarihi hem de saati ekrana yazdırır. Tarih ve saat fonksiyonları için geçerli olan kıstaslar bu fonksiyon için de geçerlidir.

, , , , ,

    Bu içeriğe ait yorumlar (toplam 15 yorum)

  • İbrahim ÖZDEMİR 7 Aralık 2014 / 01:09

    Herkese Selamlar Ben bu asp den çok fazla anlamıyorum ama işte bu sayfada olduğu gibi internet dökümanlarından faydalanarak birşeyler yaptım veri tabanına tarih kaydetmeyi buradan öğrendim şimdi mdb de 01.12.2014 şeklinde görünen tarih sayfa açıldığında 12.01.2014 şeklinde görünüyor 01.12.2014 bu şekilde görünmesi için ne yapabilirim. Yardımcı olursanız çok memnun olurum

  • mehmet çinar 14 Kasım 2012 / 13:08

    Admin benim asp ile ilgili bir sorum olacak.
    DB deki tarih isimli tablodan bilgi çekerken gün-ay-yıl (01.05.2012) görünülüyor.Ben ise gün ismide görüntülensin istiyorum yani şu şekilde = 01.may.2012 çarşamba şeklinde.Bana yardımcı olursanız çok sevinirim denemediğim format ,kod kalmadı.

  • mefhar çinar 12 Kasım 2012 / 13:09

    Admin benim asp ile ilgili bir sorum olacak.
    DB deki tarih isimli tablodan bilgi çekerken gün-ay-yıl (01.05.2012) görünülüyor.Ben ise gün ismide

    görüntülensin istiyorum yani şu şekilde = 01.may.2012 çarşamba şeklinde.Bana yardımcı olursanız çok

    sevinirim denemediğim format ,kod kalmadı. kullanacağım yerdeki kod şu şekilde:

  • Ahmet Murat 19 Haziran 2012 / 23:32

    Hocam saygılarımla. İki tarih arasında kaç gün geçtiğini bulmak istiyorum. A formuna bir tarih ve B formuna bir tarih gireceğim ve sayfa yenilenmeden direkt kaç gün geçtiğini bana söyleyecek. Örnek 01.01.2010 ve 01.01.2012 = 730 gün diyecek.

  • Harun KARADAĞ 13 Mart 2012 / 15:41

    Mustafa K öncelikle söylediğin şey post etmeden yapılsın istiyorsan (sayfa
    yeniden yüklenmeden) bu iş için saedece asp kodu yetmez. javascript kullanmak
    zorundasın. sorun değil sayfa yeniden yuklenebilir diyorsan asp ile
    yapabilirsin.

    <input type="text" name="tarih" value="<%=request("tarih")%>">

    ister
    form verisi olarak gönder ister querystring ile.
    buton ile yaparsan butonun
    onclick yokdamına eklersin. veya butona gerek yok. normal resim veya yaziya link
    ver.

    <input type="text" name="tarih" value="<%=request("tarih")%>">
    <a
    href="?Tarih=<%=now()%>">Tarihi kutuya yaz</a>

    bu kadar. ama bu formu
    sonra başka yere göndermek gibi bir düşüncen varsa zaten kutuya yazmana gerek
    yok. post edildiği yere dogrudan <%=now()%> yaz yeterli.

    ana senin esas
    aradığın bu sanırım.
    <form name="BildiginForm">
    <INPUT type="button"
    name="saatyaz" value="Bas" onclick=" document.BildiginForm.saat.value
    ='<%=time()%>'" >
    <input type="text" name="saat" value=":)" size="20">
    </form>

    Ayrıca
    İsa Arkadaşımız demişki
    Salih Bey,
    Maalesef bunun bir çözümü yok. Sizin de
    dediğiniz gibi if'ler ile tanımlamak gerekli. Şu şekilde yapılabilir:
    <%
    if
    len(minute(time))=1 then
    minute= "0"& minute
    end if
    %>
    demişsiniz.
    bu döngü ile epey kod yazdırmayı gerektirecek
    Len ile değerin 2 den küçük
    olduğunu kontrol ederek kodu biraz kısaltabiliriz.
    ama çok daha iyi bir
    çözümü var.
    Format .
    Format Atın :) .Yok format atmak değildi. Bu tam
    kaptırmış kod yazarken zurnanın zırt dediği yerde zırrrr diye bir telefon
    çalınca ve karşıdaki kişinin internet bağlantısı gitmiş ve telekom idaresi benim
    malımmış gibi "msn ye niye giremiyooomm" diyorsa kodlar kafadan uçup gitmesin
    diye telefonu bir an önce kapatmak için söylenen teknik servis çözümüydü.(ohh
    olsun :P)
    Ama Format yine çözüm olabilir. Nasıl mı ?

    saatimiz =
    "3:21:6"
    response.write FormatDateTime(saatimiz ,3)

    bu kadaaacııık

    bana
    sadece dakika lazım. olmadı bu diyorsanız. onuda yapalım olur. kodumuzda ufak bi
    degisiklik daha dogrusu ekleme ile ister saat ister dakika ister sn alabiliriz.

    saatimiz
    = "3:21:6"
    saatimiz= FormatDateTime(saatimiz ,3)
    split(saatimiz,":")
    response.write
    saatimiz(1)

    bukadaacıkkk
    saati isterseniz saatimiz(0)
    saniyeyiisterseniz
    saatimiz(1)

    suyunu çıkartalım dahada kısaltalım mı :)
    <%=cdate("3:2:11")%>

    :))))))))
    Bu kadar yaw. kasmaya gerek yok. Bu arada ASP ye laf atanlara da kapak olsun.
    Hocam
    bir kere daha hatırlattı sözünü. "Kötüp Programlama dili, kötü platform, kötü
    veritabanı , kötü bilgisayar vs yoktur. sadece yetersiz programcı, sadece
    beceriksiz kullanıcı vardır."

    Ayrıca tarih ve saat olayı asp de bununla
    bitmiyor.
    dateadd, datediff konularındada mutlaka araştırma yapın. o zaman
    belkide çok uğraştıgınız veya hatalı yaptıgınız tarihler saatler arasında
    toplama çıkarma işlemlerini yine böyle bir satır kod ile yapabileceksiniz.

    konunun
    üzerinden epey zaman geçmiş ama araştıranlar oluyor. ben nerden geldim bu
    sayfaya yaw :S . dünya saat farklarını meridyene göre otomatik çevirecek bir
    fonksiyon arıyodum :D ( en iyisi api yazmaya başlayam. biraz zor bulcam )

  • Mustafa Ka 3 Ağustos 2010 / 22:20

    (asp) text'in yanında bulunan butona tıklayınca günün tarihini atsın istiyorum.Yardımcı olabilir misiniz?

  • Ercan Acar 4 Aralık 2009 / 23:07

    Peki iki tarik arasını nasıl yazdırabiliriz

    önek: 12 yıl öncesi ile 70 yıl öncesi arasındaki tarihleri açılır menüye yazdırmak istiyoruz. listeye tek tek yazmaktansa 12 ve 70 yılları arasında yıllar açılır menüde çıkacak???

  • İsa Sarı 9 Kasım 2008 / 12:59

    W3Schools bu konuda oldukça başarılı ve sitesi içerisinde pek çok bilgi barındırıyor. Bu bilgilendirici yorumlarınız da bu konuda sorun yaşayanlar için çok iyi olacaktır. Teşekkür ederim.

  • Salih S. DEMİR 9 Kasım 2008 / 09:30

    Teşekkürler, aslında bunu denedim ama ilk mesajda belirttiğim 0 sorunu çıktı. Bende araştırmaya devam ettim ve http://www.w3schools.com/VBscript/func_datevalue.asp bu linkteki özelliği uyguladım

    < %=DateValue(ns("eklenme"))%>

    sonuç

    08.11.2008

    gerçekten bilmediğim ne kadar çok özellik varmış :)

  • İsa Sarı 9 Kasım 2008 / 08:13

    Rica ederim Salih Bey,
    "Date" yazdırmak için şu şekilde bir fonksiyon kurabilirsiniz:
    < %=day(ns("eklenme"))%>.< %=month(ns("eklenme"))%>.< %=year(ns("eklenme"))%>

    Bu sayede ekrana 10.11.2008 gibi bir tarihi yazdırabilirsiniz, yani "date"i çekmiş olursunuz.

  • Salih S. DEMİR 8 Kasım 2008 / 23:10

    Yine rahatsız ediyorum,

    Ben veritabanına kayıtlı bir tarihi (gg.aa.yyyy saat:dd:ss olarak kaydediliyor)

    < %=month(ns("eklenme"))%> olarak ayı yazdırabiliyorum ama month yerine date yazdığımda olmuyor. Bunu nasıl yazdırabilirim.

  • Salih S. DEMİR 8 Kasım 2008 / 14:28

    İlgilendiğiniz için teşekkürler.

  • İsa Sarı 8 Kasım 2008 / 14:13

    Salih Bey,
    Maalesef bunun bir çözümü yok. Sizin de dediğiniz gibi if'ler ile tanımlamak gerekli. Şu şekilde yapılabilir:
    < %
    if len(minute(time))=1 then
    minute= "0"& minute
    end if
    %>

  • Salih S. DEMİR 8 Kasım 2008 / 13:08

    Ben < %=minute(time)%> olarak kullandığımda dakika eğer 01, 05 gibiyse sadece 5 veya 1 yazıyor. Bunun bir tanımı var mı yoksa If lerle tanımlamak mı lazım?

  • M. Fikret Ölmez 3 Kasım 2008 / 11:41

    Teşekkür ederim bilgilendirme için. Aslında kodlar çok karmaşık değil de başta öyle gözüküyor. Bir de datediff ile iki tarih arasındaki fark hesaplanabiliyor, onu eklemek isterim...
    < %datediff(year,’2006.5.25′,’2008.6.13′)%> gibi.

Bir yorum bırakın

Gerçek adınızı ve soyadınızı giriniz. E-posta adresiniz gizli kalacaktır. Eğer varsa, ağ sayfanızın adresini yazınız.