/ 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
Dato manipulering
Fra : Christian Epstein


Dato : 27-06-05 15:12

Kære NG

Et hurtigt spørgsmål angående dato manipulering

Jeg skal bruge et loop til at skrive noget dato for hver dato inden for
en specifik periode. Det havde jeg tænkt mig at gøre sådan her

[code]
Do While strTempDate <= strEnd

   Response.Write strTempDate & "<br />"
      
strTempDate = FormatDateTime(strTempDate+1, vbShortDate) (line 49)
[end code]

problemet er bare at jeg får følgende fejl:

Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: "05-04-2005"]'

/SegmentSuccess.asp, line 49

nået tyder på at det ikke er et dato format, men samme string
(strTempDate) kan med havelåger omkring godt bruges som datoformat til
eksempelvis en SQL sætning.

Please Advice

MVH
Christian E

 
 
Jens Gyldenkærne Cla~ (27-06-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-06-05 20:28

Christian Epstein skrev:

> strTempDate = FormatDateTime(strTempDate+1, vbShortDate) (line
> 49) [end code]

Du får formentlig fejl fordi strTempDate er en streng - den kan du
ikke umiddelbart lægge 1 til.

Jeg ville bruge split til at trække de tre datodele ud, lægge en
til dag-værdien og så danne en ny dato med DateSerial.

Noget i retning af:


aDato = Split(strTempDate, "-")

dag = aDato(0)
maaned = aDato(1)
aar = aDato(2)

nydato = DateSerial(aar, maaned, dag + 1)

vistdato = FormatDateTime(nydato, vbShortDate)


Ovenstående er utestet, og vil givetvis have gavn af noget
fejlhåndtering (fx ved at tjekke om der nu også kommer tre
arrayelementer ud fra split).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Christian Epstein (28-06-2005)
Kommentar
Fra : Christian Epstein


Dato : 28-06-05 15:07

Jens Gyldenkærne Clausen wrote:
> Christian Epstein skrev:
>
>
>>strTempDate = FormatDateTime(strTempDate+1, vbShortDate) (line
>>49) [end code]
>
>
> Du får formentlig fejl fordi strTempDate er en streng - den kan du
> ikke umiddelbart lægge 1 til.
>
> Jeg ville bruge split til at trække de tre datodele ud, lægge en
> til dag-værdien og så danne en ny dato med DateSerial.
>
> Noget i retning af:
>
>
> aDato = Split(strTempDate, "-")
>
> dag = aDato(0)
> maaned = aDato(1)
> aar = aDato(2)
>
> nydato = DateSerial(aar, maaned, dag + 1)
>
> vistdato = FormatDateTime(nydato, vbShortDate)
>
>
> Ovenstående er utestet, og vil givetvis have gavn af noget
> fejlhåndtering (fx ved at tjekke om der nu også kommer tre
> arrayelementer ud fra split).

Tak for hjælpen, jeg var dog nået til den samme konklusion at
FormatDateTime ikke konvertere til datoformat, men kun til en string der
ser datoformat agtig ud. CDate(string) efter formatering virkede derimod
glimrende.

Desuden vil jeg i farten nævne at datostringen bliver valideret med regexp.

//Christian E

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

Månedens bedste
Årets bedste
Sidste års bedste