 |
 |
ANA MENÜ |
 |
|
 |
KATEGORİLER |
 |
 |
PROJELER |
 |
 |
ARAMA |
 |
 |
PROFİLLER |
 |
 |
REKLAMLAR |
 |
|
|
|
|
|
 |
|
Kas
1
|
ASP'de Tarih ve Saat İşlemleriyle İlgili Fonksiyonlar
1 Kasım 2008 Cumartesi
|
11 yorum |
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.
Yorumlar
M. Fikret Ölmez / 3 Kasım 2008 Pazartesi
- 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.
|
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?
|
İsa Sarı / 8 Kasım 2008 Cumartesi
- 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 %>
|
İlgilendiğiniz için teşekkürler.
|
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.
|
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.
|
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ış :)
|
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.
|
Ercan Acar / 4 Aralık 2009 Cuma
- 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???
|
Mustafa Ka / 3 Ağustos 2010 Salı
- 22:20
(asp) text'in yanında bulunan butona tıklayınca günün tarihini atsın istiyorum.Yardımcı olabilir misiniz?
|
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 )
|
|
 |