/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Angivelse af måned med ord i stedet for ta~
Fra : Anders Boholdt-Peter~


Dato : 22-07-06 06:12

Hej,

Jeg er ret ny i ASP!

Se, jeg har fået banket noget kode sammen, der ved hjælp af filesystem
opjektet går ind og læser, hvornår hver enkelt fil på min hjemmeside sidst
er lagt op på webserveren, og udskriver datoen, således, at folk kan se
hvornår jeg sidst har opdateret de enkelte dele af min hjemmeside.

Datoen udskrives f.eks. som 21.07.2006 12:00.

Jeg har lavet koden ved hjælp af følgende filer:
---filen lastupdate.asp---
'læser datoen ved hjælp af filesystem opjektet
<%

function ModifiedDate(strFile)
dim objFS, objFile
dim Result
set objFS = Server.CreateObject("Scripting.FileSystemObject")
set objFile = objFS.GetFile(strFile)
Result = objFile.DateLastModified
set objFile = Nothing
set objFS = Nothing
ModifiedDate = Result
end function

%>
---

Kode som skal indsættes på de enkelte hjemmesider, der gør at datoen bliver
vist:
---
<!-- #include file="lastupdate.asp" -->
<p>Denne side er sidst opdateret
<%
response.write ModifiedDate("z:\rodmappe\test.asp")
%>
</p>
---

Erstat ovenstående virtuelle sti med den fulde sti til de enkelte filer.

Nu kommer så mit spørgsmål:

Er der nogen derude, som kan lave et eller andet ved de ovenstående koder,
således at datoen f.eks. udskrives som 21. Juli 2006 12:00 hvis det var på
dette tidspunkt, en fil blev lagt op på webserveren?

Jeg siger på forhånd tak for eventuelle svar!

/ Anders

Hjemmeside:
http://www.boholdt-petersen.dk



 
 
Jørn Andersen (22-07-2006)
Kommentar
Fra : Jørn Andersen


Dato : 22-07-06 17:39

On Sat, 22 Jul 2006 07:11:36 +0200, "Anders Boholdt-Petersen"
<post-REMOVETHIS-@boholdt-petersen.dk> wrote:

>Jeg er ret ny i ASP!

Velkommen til!

>Datoen udskrives f.eks. som 21.07.2006 12:00.
<snip>

>function ModifiedDate(strFile)
> dim objFS, objFile
> dim Result
> set objFS = Server.CreateObject("Scripting.FileSystemObject")
> set objFile = objFS.GetFile(strFile)
> Result = objFile.DateLastModified
> set objFile = Nothing
> set objFS = Nothing
> ModifiedDate = Result
>end function
<snip>

>Er der nogen derude, som kan lave et eller andet ved de ovenstående koder,
>således at datoen f.eks. udskrives som 21. Juli 2006 12:00 hvis det var på
>dette tidspunkt, en fil blev lagt op på webserveren?

Hvis du erstatter nederste linie i din funktion med:

ModifiedDate = FormatDateTime(Result, 1) & " " &
FormatDateTime(Result, 4)
(på én linie)

- så får du hvad du ønsker, hvis din server er sat op til danske
tidsangivelser

FormatDateTime er en indbygget VBScript-funktion
1-tallet og 4-tallet betyder hhv. lang dato og kort tid - se fx:
<url: http://www.html.dk/tutorials/asp/lektion4.asp>
Her bruger de dog vbLongDate og vbShortTime i stedet.

Men hvis din server ikke er sat op til dansk tid - eller hvis du
ønsker en mere speciel formattering, må du lave din egen funktion.

Et eksempel kunne være:

Function fktFormatDatoTid(myDate)
   Dim arrMaanedLang
   arrMaanedLang = Array(, "januar", "februar", "marts", "april",
"maj", "juni", "juli", "august", "september", "oktober", "november",
"december")
   If IsDate(myDate) Then
      fktFormatDatoTid = Day(myDate) & ". " &
arrMaanedLang(Month(myDate)) & " " & Year(myDate) & " " & Right("00" &
Hour(myDate), 2) & ":" & Right("00" & Minute(myDate), 2)
   Else
      fktFormatDatoTid = "-"
   End If
End Function

(vær opmærksom på linieombrydning!)

- hvor sidste linie i din egen funktion så skal erstattes med:
ModifiedDate = fktFormatDatoTid(Result)

Forklaring:
1. Først laves der et array med månedsnavne. Det første komma er
indsat, fordi arrays er nul-nummererede, mens måender starter med 1.
NB: Månedsnavne starter med lille bogstav på dansk.
2. Dernæst checkes for, om det faktisk er en dato-værdi, der bruges
som parameter. Det er sikkert kun nødvendigt, hvis funktionen bruges
mere generelt.
3. Så kommer selve formatteringen:
- dagen og året gi'r sig selv
- måned bruger arrayet
- time og minut skal tage højde for, at de nogle gange kun har ét
ciffer og så skal have et foranstillet nul
4. Hvis der ikke var tale om en dato, udskrives blot en streg.

Hvis du kun vil have korte månedsnavne, skal du bare ændre arrayet.


NB: Når man skal arbejde med datoer - og i øvrigt - kan det *meget*
godt betale sig, at have VBScript-dokumentationen ved hånden. Brug den
online eller (hvad jeg foretrækker) hent den som Windows Help File:
<url:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp>
- eller direkte herfra:
<url:
http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en>

>Jeg siger på forhånd tak for eventuelle svar!


Good luck!

--
Jørn Andersen,
Brønshøj

Anders Boholdt-Peter~ (23-07-2006)
Kommentar
Fra : Anders Boholdt-Peter~


Dato : 23-07-06 07:40

"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:4lj4c2lqrnv8l2juk4untcrkv7i0a0ltg0@4ax.com...
> On Sat, 22 Jul 2006 07:11:36 +0200, "Anders Boholdt-Petersen"
> <post-REMOVETHIS-@boholdt-petersen.dk> wrote:
>
>>Jeg er ret ny i ASP!
>
> Velkommen til!
>
>>Datoen udskrives f.eks. som 21.07.2006 12:00.
> <snip>
>
>>function ModifiedDate(strFile)
>> dim objFS, objFile
>> dim Result
>> set objFS = Server.CreateObject("Scripting.FileSystemObject")
>> set objFile = objFS.GetFile(strFile)
>> Result = objFile.DateLastModified
>> set objFile = Nothing
>> set objFS = Nothing
>> ModifiedDate = Result
>>end function
> <snip>
>
>>Er der nogen derude, som kan lave et eller andet ved de ovenstående koder,
>>således at datoen f.eks. udskrives som 21. Juli 2006 12:00 hvis det var på
>>dette tidspunkt, en fil blev lagt op på webserveren?
>
> Hvis du erstatter nederste linie i din funktion med:
>
> ModifiedDate = FormatDateTime(Result, 1) & " " &
> FormatDateTime(Result, 4)
> (på én linie)
>
> - så får du hvad du ønsker, hvis din server er sat op til danske
> tidsangivelser
Sådan!

Nu virker det!

Men, jeg er kommet i tanke om 2 spårgsmål mere, som jeg håber en derude kan
svare på:

1. I den funktion som jeg hidtil har brugt, kunne man også se sekunderne,
f.eks. 12:00:22.

Kan man lave koden sådan i den nye linie (se ovenstående kode), så
sekunderne vises?

Hvis nej, overlever jeg nok dette.

> FormatDateTime er en indbygget VBScript-funktion
> 1-tallet og 4-tallet betyder hhv. lang dato og kort tid - se fx:
> <url: http://www.html.dk/tutorials/asp/lektion4.asp>
> Her bruger de dog vbLongDate og vbShortTime i stedet.
>
> Men hvis din server ikke er sat op til dansk tid - eller hvis du
> ønsker en mere speciel formattering, må du lave din egen funktion.
>
> Et eksempel kunne være:
>
> Function fktFormatDatoTid(myDate)
> Dim arrMaanedLang
> arrMaanedLang = Array(, "januar", "februar", "marts", "april",
> "maj", "juni", "juli", "august", "september", "oktober", "november",
> "december")
> If IsDate(myDate) Then
> fktFormatDatoTid = Day(myDate) & ". " &
> arrMaanedLang(Month(myDate)) & " " & Year(myDate) & " " & Right("00" &
> Hour(myDate), 2) & ":" & Right("00" & Minute(myDate), 2)
> Else
> fktFormatDatoTid = "-"
> End If
> End Function
>
> (vær opmærksom på linieombrydning!)
>
2. I hvilken en fil skal ovenstående kode placeres, hvis jeg gerne vil have
en mere speciel angivelse af tiden?

> - hvor sidste linie i din egen funktion så skal erstattes med:
> ModifiedDate = fktFormatDatoTid(Result)
>
> Forklaring:
> 1. Først laves der et array med månedsnavne. Det første komma er
> indsat, fordi arrays er nul-nummererede, mens måender starter med 1.
> NB: Månedsnavne starter med lille bogstav på dansk.
> 2. Dernæst checkes for, om det faktisk er en dato-værdi, der bruges
> som parameter. Det er sikkert kun nødvendigt, hvis funktionen bruges
> mere generelt.
> 3. Så kommer selve formatteringen:
> - dagen og året gi'r sig selv
> - måned bruger arrayet
> - time og minut skal tage højde for, at de nogle gange kun har ét
> ciffer og så skal have et foranstillet nul
> 4. Hvis der ikke var tale om en dato, udskrives blot en streg.
>
> Hvis du kun vil have korte månedsnavne, skal du bare ændre arrayet.
>
>
> NB: Når man skal arbejde med datoer - og i øvrigt - kan det *meget*
> godt betale sig, at have VBScript-dokumentationen ved hånden. Brug den
> online eller (hvad jeg foretrækker) hent den som Windows Help File:
> <url:
> http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp>
> - eller direkte herfra:
> <url:
> http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en>
>
>>Jeg siger på forhånd tak for eventuelle svar!
>
>
> Good luck!

Jeg siger på forhånd tsak for eventuelle svar, det er rart, at man kan bruge
disse nyhedsgrupper, og udveksle erfaringer.

MVH Anders
> --
> Jørn Andersen,
> Brønshøj



Jørn Andersen (23-07-2006)
Kommentar
Fra : Jørn Andersen


Dato : 23-07-06 08:35

On Sun, 23 Jul 2006 08:39:42 +0200, "Anders Boholdt-Petersen"
<post-REMOVETHIS-@boholdt-petersen.dk> wrote:

<snip>

>> ModifiedDate = FormatDateTime(Result, 1) & " " &
>> FormatDateTime(Result, 4)
>> (på én linie)

>Nu virker det!
>
>Men, jeg er kommet i tanke om 2 spårgsmål mere, som jeg håber en derude kan
>svare på:
>
>1. I den funktion som jeg hidtil har brugt, kunne man også se sekunderne,
>f.eks. 12:00:22.
>
>Kan man lave koden sådan i den nye linie (se ovenstående kode), så
>sekunderne vises?

Ret 4-tallet til et 3-tal.

<snip>
>> Function fktFormatDatoTid(myDate)
>> Dim arrMaanedLang
>> arrMaanedLang = Array(, "januar", "februar", "marts", "april",
>> "maj", "juni", "juli", "august", "september", "oktober", "november",
>> "december")
>> If IsDate(myDate) Then
>> fktFormatDatoTid = Day(myDate) & ". " &
>> arrMaanedLang(Month(myDate)) & " " & Year(myDate) & " " & Right("00" &
>> Hour(myDate), 2) & ":" & Right("00" & Minute(myDate), 2)
>> Else
>> fktFormatDatoTid = "-"
>> End If
>> End Function
>>
>> (vær opmærksom på linieombrydning!)
>>
>2. I hvilken en fil skal ovenstående kode placeres, hvis jeg gerne vil have
>en mere speciel angivelse af tiden?

Fx i samme fil som din nuværende funktion. Eller hvis den skal bruges
til flere ting, så evt. i en include-fil.

<snip>

>Jeg siger på forhånd tsak for eventuelle svar, det er rart, at man kan bruge
>disse nyhedsgrupper, og udveksle erfaringer.

Ja, det var også den måde, jeg overlevede den første svære tid ...

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Anders Boholdt-Peter~ (23-07-2006)
Kommentar
Fra : Anders Boholdt-Peter~


Dato : 23-07-06 09:04

"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:6a96c2hebb56rfm5t8e26hd6leik8jgdkk@4ax.com...
> On Sun, 23 Jul 2006 08:39:42 +0200, "Anders Boholdt-Petersen"
> <post-REMOVETHIS-@boholdt-petersen.dk> wrote:
>
> <snip>
>
>>> ModifiedDate = FormatDateTime(Result, 1) & " " &
>>> FormatDateTime(Result, 4)
>>> (på én linie)
>
>>Nu virker det!
>>
>>Men, jeg er kommet i tanke om 2 spårgsmål mere, som jeg håber en derude
>>kan
>>svare på:
>>
>>1. I den funktion som jeg hidtil har brugt, kunne man også se sekunderne,
>>f.eks. 12:00:22.
>>
>>Kan man lave koden sådan i den nye linie (se ovenstående kode), så
>>sekunderne vises?
>
> Ret 4-tallet til et 3-tal.

Tak for hjælpen!!!

Nu virker det efter hensigten!
> <snip>
>>> Function fktFormatDatoTid(myDate)
>>> Dim arrMaanedLang
>>> arrMaanedLang = Array(, "januar", "februar", "marts", "april",
>>> "maj", "juni", "juli", "august", "september", "oktober", "november",
>>> "december")
>>> If IsDate(myDate) Then
>>> fktFormatDatoTid = Day(myDate) & ". " &
>>> arrMaanedLang(Month(myDate)) & " " & Year(myDate) & " " & Right("00" &
>>> Hour(myDate), 2) & ":" & Right("00" & Minute(myDate), 2)
>>> Else
>>> fktFormatDatoTid = "-"
>>> End If
>>> End Function
>>>
>>> (vær opmærksom på linieombrydning!)
>>>
>>2. I hvilken en fil skal ovenstående kode placeres, hvis jeg gerne vil
>>have
>>en mere speciel angivelse af tiden?
>
> Fx i samme fil som din nuværende funktion. Eller hvis den skal bruges
> til flere ting, så evt. i en include-fil.
>
> <snip>
>
>>Jeg siger på forhånd tsak for eventuelle svar, det er rart, at man kan
>>bruge
>>disse nyhedsgrupper, og udveksle erfaringer.
>
> Ja, det var også den måde, jeg overlevede den første svære tid ...

OK.

I ser nok mere til mig, når jeg igen finder på ting, som jeg har problemer
med.

MVH Anders
> Mvh. Jørn
>
> --
> Jørn Andersen,
> Brønshøj



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408845
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste