Hantera datumformat i ASP
Förord
När man skall skriva datumformat i Active Server Pages (ASP) så är det inte alltid så lätt få till exakt den formatering man önskar. Det finns förvisso en funktion i ASP som heter Format men där kan man bara välja mellan kort och långt datumformat. I Visual Basic finns det däremot en ytterst kraftfull formatfunktion. Med denna funktion kan vi anpassa datum- och tidsformaten i princip på det sätt vi önskar. Hur kan vi då utnyttja detta för våra ASP-sidor? Jo, det finns möjlighet att kapsla in denna funktion i en klass som vi kompilerar till en DLL-fil. Därefter besitter vi möjligheten att i ASP skapa instanser av denna klass och anropa dess funktioner.Innehåll
»»
»
Skapa en DLL-fil
Vi börjar med att starta upp Visual Basic (det måste vara version 5.0 eller senare) och öppnar ett nytt projekt av typen ActiveX DLL.Vi döper projektet till FormatProject och den bifogade klassen får heta FormatClass. Denna klass kommer att bestå av en enda metod:
Public Function FormatDate (InDate As Variant, FormatString As Variant) As String
Dim strInDate As String
Dim strFormatString As String
If IsDate(InDate) Then
strInDate = CDate(InDate)
strFormatString = CStr(FormatString)
FormatDate = Format(strInDate, strFormatString)
Else
FormatDate = InDate & " är inte ett datum!"
End If
End Function
Eftersom det inte finns några datatyper i ASP/VBScript så blir parametrarna som kommer därifrån av typen Variant. När vi skrivit klart koden kompilerar vi klassen till en DLL-fil och detta utförs genom att välja Make FormatProject.dll i File-menyn.
För att vi sedan ska kunna ha nytta av den nyss skapta dll-filen som måste den först överföras till lämplig katalog i webservern och sedan måste den registreras. Detta kan du inte göra själv utan här får du vidtala systemadministratören för webservern. Du kan naturligtvis registrera dll-filen på din egen dator i syfte att provköra den. Kör du Internet Information Server (IIS) som webserverprogramvara lägger du filen i systemkatalogen. Kör du Personal Web Server rekommenderas att lägga filen (FormatProject.dll) någonstans i standardmappen wwwroot. Registreringen av filen görs med det kommandot regsvr32 vid DOS-prompten. Gå till den katalog som dll-filen befinner sig i och skriv sedan:
C:\Windows\System>regsvr32 formatproject.dll
Därefter torde vår dll-fil vara registrerad i operativsystemet.
Skapa en ny ASP-sida
Nu när vår dll-fil är registrerad och klar så är det läge att anropa den från en ASP-sida. Istället för att få det datumformat som råkar vara inställt på webservern vill vi att datumen visas enligt den svenska standarden YY-MM-DD. Bygg upp en ASP-sida som först anropar dll-en och sedan skriver ut en antal datum:
<% Set f = Server.CreateObject("FormatProject.FormatClass") %>
Dagens datum är <%=f.FormatDate(Date, "YYYY-MM-DD") %>
<%
For i = 1 To 10
NextDate = DateAdd("ww", i, Date)
%>
Om <% =i %> veckor är det
<% =f.FormatDate(NextDate, "YYYY-MM-DD") %>.
<% Next %>
Om vi nu kör koden och startar webläsaren så kommer datumformaten att bli de som vi önskat oss.
Var denna artikeln användbar?
Om du gör någon intressant som grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in kommentarer till denna kurs./Staffan Berg
0 Kommentarer