24. juni 2002 - 23:26Der er
26 kommentarer og 3 løsninger
Dansk datoformat tak :)
Jeg har følgende script som insisterer på at skrive dato som f.eks. "Mon Jun 24 00:00:00 UTC+0200 2002". Det skal vises som 24-06-2002 i stedet. Hvad går galt?
Holdet er opdateret<br><br> Du har gemt følgende ændringer:<br><br> Hold nr. <%Response.Write(" "+holdNr);%> Hold start. <%Response.Write(" "+start);%> Hold slut <%Response.Write(" "+slut);%> Ledige pladser <%Response.Write(" "+ledig);%> Opdateret d.<%Response.Write(" "+dato)%><br><br>
<a href="holdstart.asp">Tryk for at komme tilbage</a> </body> </html>
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
<%@LANGUAGE="JScript"%> <% Session.lcid=1030 function formatDate(d){ if (d.getDate().toString().length==1){dato="0"+d.getDate();}else{dato=d.getDate();} if (d.getMonth().toString().length==1){maaned="0"+d.getMonth();}else{maaned=d.getMonth();} return dato+"-"+maaned+"-"+d.getFullYear(); } dato = formatDate(new Date()); Response.Write(dato) %>
Sorry, den her skulle virke (glemte at tilføje en ekstra måned i den forrige)
<%@LANGUAGE="JScript"%> <% Session.lcid=1030 function formatDate(d){ if (d.getDate().toString().length==1){dato="0"+d.getDate();}else{dato=d.getDate();} if (parseInt(d.getMonth()+1).toString().length==1){maaned="0"+parseInt(d.getMonth()+1);}else{maaned=parseInt(d.getMonth()+1);} return dato+"-"+maaned+"-"+d.getFullYear(); } dato = formatDate(new Date()); Response.Write(dato) %>
kimiwan:> Din funktion virker helt sikkert hvis man bare skal bruge dags dato og ellers er ligeglad. Min jeg skal også gemme start- og slutdato for et hold, og kan ikke bruge den funktion.
Det skal kunne lade sig gøre uden sådan en "snyde-funktion". Se evt. mit indlæg fra 25/06-2002 00:25:18.
kaptajnkemo: du kan da også gøre det med den funktion - du skal bare angive en anden dato, når du kalder formatDate() funktionen!
Jeg ved ikke, hvordan brugeren indtaster start- og slut-dato - hvis han nu f.eks. skriver "fjerde august totusindeogto", tror jeg næppe der er meget at gøre.. Hvordan sikrer du dig, han skriver datoen ind på en måde, så du forstår det??
Kimiwan:> men pointen er at det kun kurrerer symptomerne... Jeg har stadig et forkert format i min db. Altså skal jeg kalde din funktion hver gang jeg vil vise en dato fra db og 3 gange for hver post. Det bliver til en hel del.
Den eneste umiddelbare forskel på dine eksempler er, rækkefølgen af Session.LCID og din includefil. I den der virker, inkluderer du dbase.inc først og sætter derefter Session.LCID. I det eksempel der ikke virker, er det omvendt. Du ændrer vel ikke tilfældigvis Session.LCID i din includefil ?
LCID er i øvrigt en property på et ASP objekt, Session og det er derfor fuldstændig ligegyldigt om der anvendes VBScript el. JavaScript.
Kører de 2 eksempler på samme server ? Det format du får ud af at ændre Session.LCID er stadig afhængig af den server der kører på.
<snip>ok, men det er jo tilsyneladende ligegyldigt. Det andet script virker jo</snip>
- ja, men her kommer værdien fra et recordset. Problemet er som kimiwan var inde på, at i det script der ikke virker, er datoen et "lokalt" date objekt i JScript. Denne anvender standard UTC format og er hamrende ligeglad med hvad din server står til og hvad du i øvrigt prøver at gøre med Locale Identifier koden.
toLocalDateString er en metode, der netop anvender maskinens regionale indstillinger og ikke UTC formatet.
Hvis du ikke kan/vil opdatere til en nyere version af JScript og ikke vil anvende den work-around funktion der er foreslået, vil jeg mene at du ikke kan gøre noget som helst.
tmceu:> Ikke forstået. På den side hvor man indtaster dato, bliver dato hentet fra db, og er altså ikke et Jscript objekt. Men der er datoen også i engelsk format, uanset hvad jeg gør.
Kan du give en lidt grundigere forklaring på hvorfor den ene er utc format, når den anden ikke er?
Skrev du ikke at den ene virkede (den med databasen) ?
I den med databasen, udskriver du blot værdien og dermed er den styret af den værdi/formattering der findes i databasen, overstyret af Session.LCID. Denne værdi bliver aldrig nogensinde til et JScript objekt og er derfor ikke underlagt date objektet.
tmceu :> Ok måske formulerede jeg mig ikke helt klart. Det jeg mener er at der er to scripts som kører på hver deres database (som er identiske, og kører på samme server). Det ene script virker, det gør det andet ikke.
I begge scripts er der datoer som gemmes i databasen, men på den ene (den som ikke virker)er der mulighed for at opdatere en allerede gemt dato. På den side hvor man kan se datoen, og rette i den hvis man har lyst, bliver dato hentet fra db og vist i engelsk format.
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.