Tarih Sorununa Alternatif Bir Çözüm (Asp)
-
Bazen serverdan kaynaklanan sorunlardan dolayı, veritabanına now() ya da date() olarak kaydettiğiniz kayıtları sayfada göstermeye çalıştığınızda gün/ay/yıl yerine ay/gün/yıl şeklinde yazıyor(yani 3.28.2007 gibi)
Eğer amacımız gün/ay/yıl şeklinde göstermekse;
(veritabında tarih diye bir field ve ks adında bir recordset açtığımızı farzederek yazıyorum)
<%=day(ks("tarih"))%>.<%=month(ks("tarih")).<%=year(ks("tarih"))%> kodlarını yazıyoruz, tarih sayfada g/a/y formatında görünecektir,yani 28.3.2007 şeklinde
Peki ya biz veritabanına kayıtları date() şeklinde değil now() şeklinde kaydediyorsak ve sayfada saati de göstermek istiyorsak?
onun da mantığı bununla aynı..
<%=day(ks("tarih"))%>.<%=month(ks("tarih")).<%=year(ks("tarih"))%> <%=hour(ks("tarih"))%>:<%=minute(rs("tarih"))%>:<%=second(ks("tarih"))
bu da sayfada g/a/y ve kayıt saati : kayıt dakikası : kayıt saniyesi formatında zamanı yazacaktır..(28.3.2007 20:21:37 gibi)
Bugün uyguladım bunu, lazım olur diye foruma da yazayım dedim :) -
bunu yapmak için daha basit bir yol öneririm.
sanırım yabancı bir host kullanıyorsun ve lcid set 1033 olarak ayarlandığı için bu tarz problemlerle karşılaşıyorsun.
gerçi problemi kendi yolunla çözmüşsün çok güzel ama ben sana yinede şöyle bir yol gösterim..
session.lcid=1055
bu satırı dbde tarih işlemleri yaptığın sayfaya eklersen sorunun çözülür.
hürmet bizden..
-
Session.LCID olayını biliyorum ve bu sorunlar için ideal çözüm..Ancak Session.LCID ayarlayıp sayfa sonunda default LCID'e dönmesini söylesem bile sitenin bazı bölümlerinde (tarihle ilgili bölümlerde) hatalar alıyordum, kendime alternatif bir çözüm ürettim.. Aslında en iyi çözüm Session.LCID
-
söylediklerinizde yapılabilir ama uzun yol.
kapsamlı bir sistem için her tarih kullanacagın yerde işi bu derecede uzatmak gereksiz.
birde mysql kulllanıyorsanız ....
Function isoDate(dteDate)
If IsDate(dteDate) = True Then
DIM dteDay, dteMonth, dteYear
dteDay = Day(dteDate)
dteMonth = Month(dteDate)
dteYear = Year(dteDate)
isoDate = dteYear & _
"-" & Right(Cstr(dteMonth + 100),2) & _
"-" & Right(Cstr(dteDay + 100),2)
Else
isoDate = Null
End If
End Functionfonksiyondaki eğik kısmı kendinize göre düzenleyin.seçime göre saat/dakikada ekleyebilirsiniz.
kullanımı isoDate(now()) gibü
