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

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
JavaScript og dato
Fra : Brian Emilius


Dato : 02-05-04 06:18

Hej NG

Følgende funktioner udskriver dato og tid i formatet dd-m-åååå tt:mm:ss
Jeg kunne godt tænke mig at det bare blev dd-mm-åååå (altså med nul foran
dagene 1-9 og månederne 1-9) og uden klokkeslet.
Hvordan gør jeg det?

Kode:

function str2dt (str_datetime) {
var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
if (!re_date.exec(str_datetime))
return alert("Ugyldig datoformat: "+ str_datetime);
return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5,
RegExp.$6));
}
function dt2dtstr (dt_datetime) {
return (new String (

dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFull
Year()+" "));
}
function dt2tmstr (dt_datetime) {
return (new String (

dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSecon
ds()));
}

--
Venlig hilsen | <http://emilius.dk>
Brian Emilius | Emilius Consult designer Internettet



 
 
Lasse Reichstein Nie~ (02-05-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 02-05-04 10:43

"Brian Emilius" <msn@emilius.dk> writes:

> Følgende funktioner udskriver dato og tid i formatet dd-m-åååå tt:mm:ss

Her skal du være opmærksom på om folk fra andre lande ser datoen. Hvis
de gør, så er det ikke et særlig godt format. En amerikaner ville fx nok
tolke det som mm-d-åååå hvis det giver mening.

Det eneste internationale datoformat er ISO-standarden åååå-mm-dd.
Den har også fordelen af at leksikalsk sortering giver kronologisk
orden.

Hvis det er til rent danske brugere, så kan du nok godt nøjes med
den her.

> Jeg kunne godt tænke mig at det bare blev dd-mm-åååå (altså med nul foran
> dagene 1-9 og månederne 1-9) og uden klokkeslet.
> Hvordan gør jeg det?

Der er flere måder.

> Kode:
>
> function str2dt (str_datetime) {
> var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;

Du er mere tilgivende med hvad du acepterer kan jeg se. :)

Der er ikke brug for backslash foran - og :, de kan fjernes uden
problemer. Overvej at sætte \s* foran og bag, så folk kan fumle lidt
med indtastningen.

> if (!re_date.exec(str_datetime))
> return alert("Ugyldig datoformat: "+ str_datetime);
> return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5,
> RegExp.$6));

Jeg bryder mig ikke om at bruge globale variable på den måde. Prøv den her:
---
function str2dt(str_datetime) {
var re_date =
/^\s*(\d{1,2})-(\d{1,2})-(\d+)\s+(\d{1,2}):(\d{1,2}):(\d{1,2})\s*$/;
var match = re_date.exec(str_datetime);
if (!match) {
alert("Ugyldigt datoformat: "+str_datetime);
return;
}
var yr = +match[3];
var mt = +match[2]-1;
var da = +match[1];
var date = new Date(0);
date.setFullYear(yr,mt,da);
if (date.getDate() != da || date.getMonth() != mt) {
alert("Datoen findes ikke: " + str_datetime);
return;
}
date.setHours(match[4],match[5],match[6]);
return date;
}
---
Den tester også for at man ikke indtaster den 32 april eller 30 februar.

Anyway, det var ikke dit spørgsmål :)

> }
> function dt2dtstr (dt_datetime) {
> return (new String (

Du har med altovervejende sandsynlighed *aldrig* brug for at lave et
string-objekt. Drop "new String(" og returner streng-værdien direkte.

---
function dt2dtstr(dt_datetime) {
return LZ(dt_datetime.getDate()) + "-" +
LZ(dt_datetime.getMonth()) + "-" +
dt_datetime.getFullYear() + " ";
}
---
og definer funktionen:
---
function LZ(n) { // leading zero
return (n<10?"0":"")+n;
}
---

> function dt2tmstr (dt_datetime) {
> return (new String (
>
> dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSecon
> ds()));

Her kan du også bruge LZ:
---
function dt2tmstr(dt_datetime) {
return LZ(dt_datetime.getHours()) + ":" +
LZ(dt_datetime.getMinutes()) + ":" +
LZ(dt_datetime.getSeconds());
}
---


> Venlig hilsen | <http://emilius.dk>
> Brian Emilius | Emilius Consult designer Internettet

Hmm, en web designer. Er det her noget du har tænkt dig at bruge
kommercielt?
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Brian Emilius (02-05-2004)
Kommentar
Fra : Brian Emilius


Dato : 02-05-04 17:03

Lasse Reichstein Nielsen wrote in dk.edb.internet.webdesign.clientside:

> Hvis det er til rent danske brugere, så kan du nok godt nøjes med
> den her.

Det er det

Koden er ikke til kommercielt brug, men til en ven jeg laver noget for...
Er ikke vildt god til JavaScript, så jeg tænkte, jeg kunne spørge her.

Tak for hjælpen!

Venlig hilsen
Brian Emilius

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

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