Avatar billede oasen Nybegynder
25. februar 2003 - 17:51 Der er 33 kommentarer og
2 løsninger

Formatér dato

Findes der i VB en indbygget funktion, der kan formatere dato/tid som følger?
Således at denne er nummerisk og altid har den samme længde.

Now ---> "yyyymmddhhnnss"
Avatar billede somaliomar Praktikant
25. februar 2003 - 17:57 #1
Prøv Format(now, "yyyymmddhhnnss")
Avatar billede oasen Nybegynder
25. februar 2003 - 18:05 #2
ASP-fortolkeren kan ikke lide dig ;o)

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Format'
Avatar billede somaliomar Praktikant
25. februar 2003 - 18:07 #3
Det anede mig :)
Avatar billede oasen Nybegynder
25. februar 2003 - 18:11 #4
Jeg er næsten sikker på, der findes en funktion til det. Kan bare ikke huske syntaksen. Og jeg gider ikke sidde og hardcode det selv, hvis det kan undgås.
Avatar billede somaliomar Praktikant
25. februar 2003 - 18:12 #5
Måske det her kan narre fortolkeren :)
Replace(Replace(Replace(now, "-", ""), ":", ""), " ", "")
Avatar billede somaliomar Praktikant
25. februar 2003 - 18:13 #6
Her har du alle de funktioner som VBScript kan klare...
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:13 #7
hmm det kan du jo lave manuelt..hvis det har interresse
Avatar billede oasen Nybegynder
25. februar 2003 - 18:14 #8
Ja, det kan sagtens laves. Jeg søgte bare noget mindre bøvlet ;)

Right("00000" & Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time), 14)
Avatar billede pfp Nybegynder
25. februar 2003 - 18:15 #9
Angiver nn minuter?
Avatar billede oasen Nybegynder
25. februar 2003 - 18:15 #10
Ja
Avatar billede somaliomar Praktikant
25. februar 2003 - 18:16 #11
Jeg tvivler på, at du kan finde en funktion, der kan det du søger efter... :)
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:17 #12
prøv at glugge her..kan være du kan fidne ne function der kan det ;-)

http://www.devguru.com/Technologies/vbscript/quickref/functions.html
Avatar billede oasen Nybegynder
25. februar 2003 - 18:17 #13
Og ja, formatet bliver ikke korrekt med ovenstående metode. Men det er ligegyldigt i denne samhæng. Jeg skal bare bruge et nummer på 14 cifre indeholdende værdierne fra Now.
Avatar billede somaliomar Praktikant
25. februar 2003 - 18:19 #14
Må jeg være så fræk at spørge hvad du skal bruge de 14 cifre til?
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:21 #15
jeg lavede en gang en dato hvor jeg skulle være sikker på den dato havde en bestemt længe...kan være du kunne bruge det som lidt "inspiration" :-D

Dag = day(now)
maaned = month(now)
aar = year(now)
IF Len(Dag) = 1 THEN
Dag = 0 & Dag
END IF
IF Len(maaned) = 1 THEN
  maaned = 0 & maaned
END IF
fildato = aar & maaned & dag
Avatar billede oasen Nybegynder
25. februar 2003 - 18:26 #16
somaliomar ---> Det er i forbindelse med en randomværdi.
mccannon ---> Ja, eller:

Year(Date) & Right("0" & Month(Date), 2) & Day("0" & Year(Date), 2) & Right("0" & Hour(Time), 2) & Right("0" & Minute(Time), 2) & Right("0" & Second(Time), 2)
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:27 #17
med dato og tid ser det sådan ud :
<%
Dag = day(now)
maaned = month(now)
aar = year(now)
timen = hour(now)
minut = minute(now)
sec = second(now)

IF Len(Dag) = 1 THEN
Dag = 0 & Dag
END IF

IF Len(maaned) = 1 THEN
  maaned = 0 & maaned
END IF

IF Len(timen) = 1 THEN
timen = 0 & timen
END IF

IF Len(minut) = 1 THEN
minut = 0 & minut
END IF

IF Len(sec) = 1 THEN
sec = 0 & sec
END IF

fildato = maaned & dag & aar & timen & minut & sec
%>
output = 02252003182202
Avatar billede oasen Nybegynder
25. februar 2003 - 18:27 #18
Tak, men så er min egen vist kortere trods alt ;)
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:28 #19
oase..hvad gør den så når der feks står 11 i din dato eller sec ??
Avatar billede oasen Nybegynder
25. februar 2003 - 18:29 #20
Så tager den to tegn fra højre af, dvs. 11
Avatar billede mccannon Nybegynder
25. februar 2003 - 18:30 #21
hm oki :-D..troede ikke right() funktionen virkede på den måde..men det gør jeg nu :-D
Avatar billede oasen Nybegynder
25. februar 2003 - 19:27 #22
Jeg kan ikke finde nogen som helst funktion, så det bliver, som det er. Vil I have nogle points?
Avatar billede somaliomar Praktikant
25. februar 2003 - 19:54 #23
Du må gerne beholde dem selv. Det kan være, at du får brug for dem en anden gang :)
Avatar billede somaliomar Praktikant
25. februar 2003 - 20:00 #24
Måske burde du lade det stå åben i et stykke tid. Måske kan det være, at de rigtige eksperter såsom eagleeye, ved om der findes en funktion, der kan gøre det du søger efter...
Avatar billede oasen Nybegynder
25. februar 2003 - 22:55 #25
Det gør han sikkert, men tror ikke han kommer forbi her med 25 indlæg i tråden...
Avatar billede somaliomar Praktikant
25. februar 2003 - 22:58 #26
Indlægget er ikke besvaret endnu... Chancen for at han kommer forbi er ret stor :)
Avatar billede oasen Nybegynder
25. februar 2003 - 23:19 #27
27 - vi håber :)
Avatar billede aller Nybegynder
25. februar 2003 - 23:32 #28
Har lige testet disse, virkede fint for mig:

unction Two(S)
  two = CStr(S)
  while len(two)<2
    two = "0" & two
  wend
end function

function Dato()
  da = Year(Now()) & Two(Month(Now())) & Two(Day(Now()))
  ti = Two(Hour(Now)) & Two(Minute(Now)) & Two(Second(Now))
  Dato = da & ti
end function

Man kan altid diskutere om det skal slåes sammen til en lang linie, men for overskuelighedens skyld har jeg dem som to.

Mvh.

Kim Alsgaard
Avatar billede aller Nybegynder
25. februar 2003 - 23:32 #29
Der mangler forresten et "f" i den første funktion :D
Avatar billede oasen Nybegynder
26. februar 2003 - 07:43 #30
Tak skal du have, men nu var det mere en funktion alá Format(now, "yyyymmddhhnnss") jeg søgte - hvis den findes.
Avatar billede eagleeye Praktikant
26. februar 2003 - 09:25 #31
Der findes ikke en funktion anden end FormatDateTime til at formatere dato format, men den kan ikke modtage et "custom" pattern men den brugre nogle pre definerede dato formats. Så du må lave din egen, du kan evt lave en som du let kan formatere om på strengen ved at give den tid og dato + en format streng og lave den i stil med:



function formatDato(datoTid, formatStr)
  str = formatStr
  'Udskift År prøv føste med yyyy så yy
  str = Replace(str, "yyyy", Year(datoTid))
  str = Replace(str, "yy", Right(Year(datoTid),2))
  'Udskift månede mm
  str = Replace(str, "mm", Right("0" & Month(datoTid),2))
  'Udskift dag dd
  str = Replace(str, "dd", Right("0" & Day(datoTid),2))
  'Udskift time hh
  str = Replace(str, "hh", Right("0" & Hour(datoTid),2))
  'Udskift minutter nn
  str = Replace(str, "nn", Right("0" & Minute(datoTid),2))
  'Udskift sekund ss
  str = Replace(str, "ss", Right("0" & Secound(datoTid),2))
  formatDato = str
end if


Så kalder du functionen sådan her:

Response.Write formatDato(now,"yyyymmddhhnnss")


Vil du senere havde et andet format skriver du bare det eks:
Response.Write formatDato(now,"dd/mm/yyyy hh:nn:ss")

P.S.: Inden du *kommentere* lægden af funktionen så bemærk ca. hver anden linie er en kommentar ;)
Avatar billede eagleeye Praktikant
26. februar 2003 - 09:46 #32
Man kunne ønske sig at funktionen Format var med VBScript som den er med VB.

Hvis du kan downloade denne så er der vist et tilsvarne eks:
http://www.hotscripts.com/Detailed/16280.html
Jeg kan ikke få lov at downloade den.


Eller hvis du har mod på at prøve dette, så er her et eks på hvordan man kan lave et VB Server Object som tilbyder functionen format. Du kan downloade alle nødvendige filer:
http://www.4guysfromrolla.com/webtech/051601-1.shtml
Avatar billede oasen Nybegynder
26. februar 2003 - 10:50 #33
Sjovt du nævner den funktion. For jeg lavede nemlig en lignende her: http://www.eksperten.dk/spm/293867

Men jeg havde da helt glemt den...

Ser lige på links'ne.
Avatar billede eagleeye Praktikant
26. februar 2003 - 21:55 #34
hehe, det var derfra jeg fik den :)
Avatar billede oasen Nybegynder
26. februar 2003 - 23:50 #35
Det tænkte jeg nok :)
Jeg synes denne ser interessant ud: http://www.4guysfromrolla.com/webtech/051601-1.shtml

Tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester