23. januar 2005 - 18:09
Der er
33 kommentarer og 2 løsninger
Dato format !
Jeg har problemer med, at formatere en dato jeg skal henter i en accessdatabase. Datoen ligger i et "tekstfelt" og når jeg henter det ser det eksemplevis sådan ud 20050120204422 det skulle gerne se sådan 1 Januar 2005 klokken 20.44.22. Nu har jeg siddet og rodet med det hele Søndag, uden at komme nogen vejen !!!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
23. januar 2005 - 18:25
#1
der skulle ikke være en grund til at gemme det som en tekst - det er bl.a. derfor der er lavet dato-felter i access. Gem det som en dato og du får en dato ud.
23. januar 2005 - 18:33
#2
keysersoze - Det er fra en database jeg ikke kan pille ved, så derfor skulle jeg gerne kunne bruge det som det er !!! Jeg henter datoen fra en tabel i mit forum og der henter de datoen således Sidst besvaret af <b><%=getMemberName(T_LastAuthor)%></b><%end if%><%if T_REPLIES <> 0 then%> den <b><%= ChkDate(T_LAST_POST) %></b> kl.<%= ChkTime(T_LAST_POST) %><%else%> den <b><%= ChkDate(T_DATE) %></b> kl. <%= ChkTime(T_DATE) %><%end if%> men spørge mig ikke hvordan det virker ????
23. januar 2005 - 18:52
#3
dato = "20050120204422" year = Cint(Left(dato)) ' Cint laver om til et tal md = Cint(mid(dato,4,2) day = Cint(mid(dato,6,2) hour = Cint(mid(dato,8,2) minute = Cint(mid(dato,10,2) sec = Cint(mid(dato,12,2)
23. januar 2005 - 18:53
#4
hov dato = "20050120204422" year = Cint(Left(dato),4) ' Cint laver om til et tal md = Cint(mid(dato,4,2)) day = Cint(mid(dato,6,2)) hour = Cint(mid(dato,8,2)) minute = Cint(mid(dato,10,2)) sec = Cint(mid(dato,12,2))
23. januar 2005 - 18:58
#5
på forum-siden er der så højst sandsynligt nogle funktioner du kan genbruge - nemlig dem der hedder ChkDate og ChkTime. De indeholder formentlig noget a la det cpufan foreslår
23. januar 2005 - 19:09
#6
HMmm der kommer denne fejl: Microsoft VBScript runtime error '800a01c2' Wrong number of arguments or invalid property assignment: 'Left' /forum/dato.asp, line 19
23. januar 2005 - 19:18
#7
keysersoze - Det troede jeg også, men jeg kan ikke hitte dem :o((
23. januar 2005 - 19:22
#8
year = Cint(Left(dato,4))
23. januar 2005 - 19:28
#9
keysersoze - jeg fandt det her i en includere fil !!! function ChkDateTime(fDateTime) if fDateTime = "" then exit function end if if IsDate(fDateTime) then select case strDateType case "dmy" ChkDateTime = Mid(fDateTime,7,2) & "/" & _ Mid(fDateTime,5,2) & "/" & _ Mid(fDateTime,1,4) case "mdy" ChkDateTime = Mid(fDateTime,5,2) & "/" & _ Mid(fDateTime,7,2) & "/" & _ Mid(fDateTime,1,4) case "ymd" ChkDateTime = Mid(fDateTime,1,4) & "/" & _ Mid(fDateTime,5,2) & "/" & _ Mid(fDateTime,7,2) case "ydm" ChkDateTime =Mid(fDateTime,1,4) & "/" & _ Mid(fDateTime,7,2) & "/" & _ Mid(fDateTime,5,2) case "dmmy" ChkDateTime = Mid(fDateTime,7,2) & " " & _ Monthname(Mid(fDateTime,5,2),1) & " " & _ Mid(fDateTime,1,4) case "mmdy" ChkDateTime = Monthname(Mid(fDateTime,5,2),1) & " " & _ Mid(fDateTime,7,2) & " " & _ Mid(fDateTime,1,4) case "ymmd" ChkDateTime = Mid(fDateTime,1,4) & " " & _ Monthname(Mid(fDateTime,5,2),1) & " " & _ Mid(fDateTime,7,2) case "ydmm" ChkDateTime = Mid(fDateTime,1,4) & " " & _ Mid(fDateTime,7,2) & " " & _ Monthname(Mid(fDateTime,5,2),1) case "dmmmy" ChkDateTime = Mid(fDateTime,7,2) & " " & _ Monthname(Mid(fDateTime,5,2),0) & " " & _ Mid(fDateTime,1,4) case "mmmdy" ChkDateTime = Monthname(Mid(fDateTime,5,2),0) & " " & _ Mid(fDateTime,7,2) & " " & _ Mid(fDateTime,1,4) case "ymmmd" ChkDateTime = Mid(fDateTime,1,4) & " " & _ Monthname(Mid(fDateTime,5,2),0) & " " & _ Mid(fDateTime,7,2) case "ydmmm" ChkDateTime = Mid(fDateTime,1,4) & " " & _ Mid(fDateTime,7,2) & " " & _ Monthname(Mid(fDateTime,5,2),0) case else ChkDateTime = doublenum(Mid(fDateTime,5,2)) & "/" & _ Mid(fDateTime,7,2) & "/" & _ Mid(fDateTime,1,4) end select if strTimeType = 12 then if cint(Mid(fDateTime, 9,2)) > 12 then ChkDateTime = ChkDateTime & " " & _ (cint(Mid(fDateTime, 9,2)) -12) & ":" & _ Mid(fDateTime, 11,2) & ":" & _ Mid(fDateTime, 13,2) & " " & "PM" elseif cint(Mid(fDateTime, 9,2)) = 12 then ChkDateTime = ChkDateTime & " " & _ cint(Mid(fDateTime, 9,2)) & ":" & _ Mid(fDateTime, 11,2) & ":" & _ Mid(fDateTime, 13,2) & " " & "PM" elseif cint(Mid(fDateTime, 9,2)) = 0 then ChkDateTime = ChkDateTime & " " & _ (cint(Mid(fDateTime, 9,2)) +12) & ":" & _ Mid(fDateTime, 11,2) & ":" & _ Mid(fDateTime, 13,2) & " " & "AM" else ChkDateTime = ChkDateTime & " " & _ Mid(fDateTime, 9,2) & ":" & _ Mid(fDateTime, 11,2) & ":" & _ Mid(fDateTime, 13,2) & " " & "AM" end if else ChkDateTime = ChkDateTime & " " & _ Mid(fDateTime, 9,2) & ":" & _ Mid(fDateTime, 11,2) & ":" & _ Mid(fDateTime, 13,2) end if end if end function function ChkDateFormat(strDateTime) ChkDateFormat = isdate("" & Mid(strDateTime, 7,2) & "/" & Mid(strDateTime, 5,2) & "/" & Mid(strDateTime, 1,4) & " " & Mid(strDateTime, 9,2) & ":" & Mid(strDateTime, 11,2) & ":" & Mid(strDateTime, 13,2) & "") end function function StrToDate(strDateTime) if ChkDateFormat(strDateTime) then StrToDate = cdate("" & Mid(strDateTime, 7,2) & "/" & Mid(strDateTime, 5,2) & "/" & Mid(strDateTime, 1,4) & " " & Mid(strDateTime, 9,2) & ":" & Mid(strDateTime, 11,2) & ":" & Mid(strDateTime, 13,2) & "") else StrToDate = "" & strForumTimeAdjust end if end function function DateToStr(dtDateTime) DateToStr = year(dtDateTime) & doublenum(Month(dtdateTime)) & doublenum(Day(dtdateTime)) & doublenum(Hour(dtdateTime)) & doublenum(Minute(dtdateTime)) & doublenum(Second(dtdateTime)) & "" end function
01. februar 2005 - 16:25
#10
Hej cpufan ! Undskyld den lange response tid ;o) Jeg har ændret lidt i det, så det ser sådan ud: <% dato = rs("T_LAST_POST") aar = Cint(Left(dato,4)) ' Cint laver om til et tal md = Cint(mid(dato,5,2)) +1 mdr = MonthName(Month(md)) dag = Cint(mid(dato,7,2)) tim = Cint(mid(dato,9,2)) minuter = Cint(mid(dato,11,2)) sec = Cint(mid(dato,13,2)) Response.Write " " & dag & " " & mdr & " " & aar & " kl. " & tim & "." & minuter & "." & sec %> Der er dog et par ting, som ikke virker efter hensigten.... Jeg ville gerne ha den til, at vise navn ved måned og det fik jeg den også til, men for at få Januar frem måtte jeg tilføje +1 - men nu skrifter den ikke til februar ... En anden ting er, af den ikke viser 0 ved minutter eks. 05 Jeg håber du stadig hænger ved :o))
01. februar 2005 - 17:15
#11
tim = nultjek(Cint(mid(dato,9,2))) minutter = nultjek(Cint(mid(dato,11,2))) sec = nultjek(Cint(mid(dato,13,2))) Function nultjek(vari) if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) nultjek = strtal end function det med at måned ikke skifter kan jeg ikke se umiddelbart, så skal jeg ha' noget mere kode????
01. februar 2005 - 17:23
#12
prøv lige at response.write rs("T_last_post") og lad mig se hvad den skriver ud
01. februar 2005 - 17:49
#13
Så kommer denne her: Microsoft VBScript compilation error '800a03ea' Syntax error /forum/aktuelletest.asp, line 67 Function nultjek(vari) ^ Angående måned har du hele koden her : sql = "SELECT TOP 2 * FROM PORTAL_TOPICS ORDER BY T_LAST_POST DESC" Set rs = Conn.Execute (sql)%> <% if rs.EOF then %> <% else %> <% Do Until rs.EOF %> <strong><font size="2"> <% = rs("T_SUBJECT") %> </strong> <br> <% dato = rs("T_LAST_POST") aar = Cint(Left(dato,4)) ' Cint laver om til et tal md = Cint(mid(dato,5,2)) +1 mdr = MonthName(Month(md)) dag = Cint(mid(dato,7,2)) tim = Cint(mid(dato,9,2)) minuter = Cint(mid(dato,11,2)) sec = Cint(mid(dato,13,2)) Response.Write " " & dag & " " & mdr & " " & aar & " kl. " & tim & "." & minuter & "." & sec %> <br> <a href=/forum/link.asp?TOPIC_ID=<% = rs("TOPIC_ID") %>> >> læs mere</font><br> </a> <font color="#FF0000" size="2"> </font></font></td> </a>
01. februar 2005 - 17:58
#14
Måned har jeg fixset med denne her : md = MonthName(mid(dato,5,2)) ....tror jeg nok !!!
01. februar 2005 - 18:33
#15
Function nultjek(vari) if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) end if nultjek = strtal end function
01. februar 2005 - 18:36
#16
prøv at skrive rs("T_LAST_POST") ud nogle gange med forskellige datoer jeg vil gerne se hvordan tallene bliver bygget op for jeg tro din måned "bygger" på en 0-værdi, hvorfor skal du ellers plusse med 1 for at få en.
01. februar 2005 - 18:41
#17
Får denne fejl Microsoft VBScript compilation error '800a03ea' Syntax error /forum/aktuelletest.asp, line 68 Function nultjek(vari) Og koden ser sådan ud nu : <% dato = rs("T_LAST_POST") aar = Cint(Left(dato,4)) ' Cint laver om til et tal md = MonthName(mid(dato,5,2)) dag = Cint(mid(dato,7,2)) tim = nultjek(Cint(mid(dato,9,2))) minutter = nultjek(Cint(mid(dato,11,2))) sec = nultjek(Cint(mid(dato,13,2))) Function nultjek(vari) if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) end if nultjek = strtal end function Response.Write " " & dag & " " & md & " " & aar & " kl. " & tim & "." & minuter & "." & sec %> <br> <a href=/forum/link.asp?TOPIC_ID=<% = rs("TOPIC_ID") %>> >> læs mere</font><br> </a> <font color="#FF0000" size="2"> </font></font></td> </a> Som du ser har jeg fjernet "+1" og det virker P.T.
01. februar 2005 - 20:07
#18
jeg får ingen fejl på det ?? så skal du poste hele din kode, eller også finde ud af hvad der står i linie 68
01. februar 2005 - 20:10
#19
det kunne lyde som om, at det ikke altid er en datostreng du trækker ud af db, men noget andet, end null-værdi eller måske en bogstavstreng
01. februar 2005 - 20:12
#20
HMmm det er da mærkelig - men linie 68 = Function nultjek(vari)
Her er siden
http://www.lystfiskerens.net/forum/aktuelletest.asp og hele koden ser sådan ud :
-------------------o-----------------
<% Session.LCID = 1030 %>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/forum/database/fladbuk.mdb")
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Aktuelle Nyheder</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.anmeldelse {
font-family: "Times New Roman", Times, serif;
font-size: 12px;
}
-->
</style>
</head>
<body>
<table width="180" height="100%" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<table width="180" border="0" cellpadding="10" cellspacing="0" class="anmeldelse">
<tr>
<td></td>
</tr>
<tr>
<td><table width="180" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#333333" bgcolor="#2687D0">
<div align="center"><font color="#FFFFFF">FORUM</font></div></td>
</tr>
<tr>
<td>
<br>
<%
sql = "SELECT TOP 2 * FROM PORTAL_TOPICS ORDER BY T_LAST_POST DESC"
Set rs = Conn.Execute (sql)%>
<%
if rs.EOF then
%>
<%
else
%>
<%
Do Until rs.EOF
%>
<strong><font size="2"> <% = rs("T_SUBJECT") %> </strong> <br>
<% dato = rs("T_LAST_POST")
aar = Cint(Left(dato,4)) ' Cint laver om til et tal
md = MonthName(mid(dato,5,2))
dag = Cint(mid(dato,7,2))
tim = nultjek(Cint(mid(dato,9,2)))
minutter = nultjek(Cint(mid(dato,11,2)))
sec = nultjek(Cint(mid(dato,13,2)))
Function nultjek(vari)
if vari < 10 then
strtal = "0" & Cstr(vari)
else
strtal = Cstr(vari)
end if
nultjek = strtal
end function
Response.Write " " & dag & " " & md & " " & aar & " kl. " & tim & "." & minuter & "." & sec
%>
<br>
<a href=/forum/link.asp?TOPIC_ID=<% = rs("TOPIC_ID") %>> >> læs mere</font><br> </a> <font color="#FF0000" size="2"> </font></font></td>
</a>
</td>
</tr>
</table>
<%
rs.MoveNext
Loop
%>
<p>
<% end if
rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>
<tr>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/forum/database/fladbuk.mdb")
%>
<td><table width="180" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#333333" bgcolor="#2687D0"><div align="center"><font color="#FFFFFF">BILLEDER</font></div></td>
</tr><%
sql = "SELECT TITLE, POST_DATE, TURL, PIC_ID FROM PIC ORDER BY POST_DATE DESC"
Set rs = Conn.Execute (sql)%>
<tr>
<td><div align="center"><%
billed_url = rs("TURL")
if billed_url<>"" then
Response.write "<br>" & "<br>" & "<img src='" & billed_url & "'"
end if
%></div>
</td>
</tr>
<tr>
<td> <br>
<strong><font size="2"> <% = rs("TITLE") %> </strong><br>
<% dato = rs("POST_DATE")
aar = Cint(Left(dato,4)) ' Cint laver om til et tal
md = Cint(mid(dato,5,2)) +1
mdr = MonthName(Month(md))
dag = Cint(mid(dato,7,2))
tim = Cint(mid(dato,9,2))
minuter = Cint(mid(dato,11,2))
sec = Cint(mid(dato,13,2))
Response.Write " " & dag & " " & mdr & " " & aar & " kl. " & tim & "." & minuter & "." & sec
%>
<br>
<a href=/forum/pic_display.asp?id=<% = rs("PIC_ID") %>> >> se mere</font><br> </a> <font color="#FF0000" size="2"> </font></td>
</a>
</td>
</tr>
</table>
<tr>
<td><table width="180" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#333333" bgcolor="#2687D0"><div align="center"><font color="#FFFFFF">ANMELDELSER</font></div></td>
</tr>
<tr>
<td class="anmeldelse"><br>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/anmeldelse/jerg.mdb")
str_sql2 = "SELECT TOP 1 * FROM anm ORDER BY id desc"
Set rs = Conn.Execute (str_sql2)
%>
<strong>
<% = rs("kategori") %>
</strong><br>
* <% = rs("produkt") %> <% = rs("butik") %> * <br>
indsat af
<% = rs("navn") %>
den
<% = rs("dato") %><br>
<a href="/anmeldelse/popup.asp?rid=<%=rs("id") & "&t=" & rs("kategori")%> & "> >> læs mere</a>
</td>
</tr>
</td>
</tr>
</td>
</tr>
</table></td>
</tr>
</table>
<%
if rs.EOF then
%>
<%
else
%>
<%
Do Until rs.EOF
%>
<%
rs.MoveNext
Loop
%>
<% end if
rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>
</body>
</html>
01. februar 2005 - 20:20
#21
Jeps det er i tekst format ???
01. februar 2005 - 20:26
#22
ved jeg godt, men hvis der er andet end tal i, så vil funktionen nultjek(vari) fejle
01. februar 2005 - 20:30
#23
Function nultjek(vari) if isnumeric(vari) then if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) end if nultjek = strtal else nultjek = xx end if end function hvis du indsætter denne, tager den højde for at det er tal
01. februar 2005 - 20:46
#24
Function nultjek(vari) if isnumeric(vari) then if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) end if nultjek = strtal else nultjek = "xx" ' glemte "" end if end function
01. februar 2005 - 20:47
#25
Hmm Microsoft VBScript compilation error '800a03ea' Syntax error /forum/aktuelletest.asp, line 68 Function nultjek(vari) ^ Det ser ud, som om den ikke kan "lige" F'et
01. februar 2005 - 20:48
#26
og så skal de 3 ændres således: tim = nultjek(mid(dato,9,2)) minutter = nultjek(mid(dato,11,2)) sec = nultjek(mid(dato,13,2))
01. februar 2005 - 20:50
#27
http://teper.dk/shop/aa.asp kører denne kode:
<%
dato = "200501202004bb"
tim = nultjek(mid(dato,9,2))
minutter = nultjek(mid(dato,11,2))
sec = nultjek(mid(dato,13,2))
Function nultjek(vari)
if isnumeric(vari) then
if vari < 10 then
strtal = "0" & Cstr(vari)
else
strtal = Cstr(vari)
end if
nultjek = strtal
else
nultjek = "xx"
end if
end function
response.write tim & " " & minutter & " " & sec
%>
01. februar 2005 - 20:53
#28
Sammen fejl - koden ser lige nu sådan ud : <% = rs("T_SUBJECT") %> </strong> <br> <% dato = rs("T_LAST_POST") aar = Cint(Left(dato,4)) ' Cint laver om til et tal md = MonthName(mid(dato,5,2)) dag = Cint(mid(dato,7,2)) tim = nultjek(mid(dato,9,2)) minutter = nultjek(mid(dato,11,2)) sec = nultjek(mid(dato,13,2)) Function nultjek(vari) if isnumeric(vari) then if vari < 10 then strtal = "0" & Cstr(vari) else strtal = Cstr(vari) end if nultjek = strtal else nultjek = "xx" ' glemte "" end if end function Response.Write " " & dag & " " & md & " " & aar & " kl. " & tim & "." & minuter & "." & sec %>
01. februar 2005 - 20:53
#29
hmmmm og så kan jeg se at 0'et kommer med når Cint droppes, så du kan bare droppe funktionen helt og så bare sætte: tim = nultjek(mid(dato,9,2)) minutter = nultjek(mid(dato,11,2)) sec = nultjek(mid(dato,13,2))
01. februar 2005 - 20:55
#30
og så fjern Cint fra de resterende også, så burde du være kørende
01. februar 2005 - 20:58
#31
*suk* nu er jeg træt...... sådan her: if len(dato) < 14 then dato = "00000000000000" end if aar = Left(dato,4) md = mid(dato,5,2) mdr = MonthName(Month(md)) dag = mid(dato,7,2) tim = mid(dato,9,2) minuter = mid(dato,11,2) sec = mid(dato,13,2)
01. februar 2005 - 21:00
#32
Det forstår jeg ikke lige !!! Hvordan ser det så ud ???
01. februar 2005 - 21:04
#33
<% = rs("T_SUBJECT") %> </strong> <br> <% dato = rs("T_LAST_POST") if len(dato) < 14 then dato = "00000000000000" end if aar = Left(dato,4) md = mid(dato,5,2) mdr = MonthName(Month(md)) dag = mid(dato,7,2) tim = mid(dato,9,2) minuter = mid(dato,11,2) sec = mid(dato,13,2) Response.Write " " & dag & " " & md & " " & aar & " kl. " & tim & "." & minuter & "." & sec %>
01. februar 2005 - 21:06
#34
YESYES .......... 1000 TAK FOR HJÆLPEN
01. februar 2005 - 21:07
#35
pyyyyyyyyyyyyyyh det ville være løgn at sige: no problem! men 1000 selvtak
Kurser inden for grundlæggende programmering