Avatar billede knaldeglad Nybegynder
14. december 2005 - 13:35 Der er 17 kommentarer og
1 løsning

konvertere rs object til string for at splitte (timetamp)

ville jo gerne kunne dette men det tillader objektet ikke....

var dato = rs("fakturadato").toString();

for så er det jo nemt at splitte...

evt er der en nem måde eller skal jeg absolut behandle objectet ordentligt....  ;o)
Avatar billede thesurfer Nybegynder
15. december 2005 - 11:57 #1
Er det JSscript eller VBScript?

JScript:
var dato = "" & rs("fakturadato");
Det skal lige siges, at "&" muligvis skal være "+"..

VBScript:
dim dato
dato = "" & rs("fakturadato")
Men "" er vist ikke nødvendigt..
Og du kan også bruge dato = CStr(rs("fakturadato")

/theSurfer
Avatar billede knaldeglad Nybegynder
15. december 2005 - 12:59 #2
jamen det er jo rigtigt.....  men nu bliver datoen formateret helt forkert...

hvis man laver en Response.Write(rs("dato")); kommer
13-12-2005 14:28:20 som jeg gerne vil ha, men ikke kan splitte, og hvis jeg laver en
var dato = "" + rs("dato"); og dernæst en
Response.Write(dato); kommer noget helt andet
Tue Dec 13 14:28:20 UTC+0100 2005 som jeg godt kan splitte... øv øv øv øv...  skal bruge 13-12-2005 og ikke andet...  nogen ide´er ved godt at poit er dine, men plz...
Avatar billede thesurfer Nybegynder
15. december 2005 - 13:16 #3
Kigger lige på det om lidt..

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 13:41 #4
Det ligner jo JScript :-)

Så kan du vist bare nøjes med:

var dato = rs("fakturadato");
dato = dato.substring(0, dato.indexOf(" ") - 1);
response.write dato

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 13:44 #5
..manglede et ";" efter "response.write dato"..

Du kan også splitte det det:
var fulddato = rs("fakturadato");
fulddato = fulddato.split(" ");
dato = fulddato[0];
tid = fulddato[1];

response.write "Det er i dag d. " + dato + " og klokken er " + tid;


/theSurfer
Avatar billede knaldeglad Nybegynder
15. december 2005 - 14:08 #6
næææ det er det jeg ikke kan..... 
første forslag giver

Microsoft JScript runtime error '800a01b6'
Object doesn't support this property or method
/faktura1/printoldfaktura.asp, line 26

hvor linie 26 er :
fakturadato = fakturadato.substring(0,fakturadato.indexOf(" ") -1);
Avatar billede knaldeglad Nybegynder
15. december 2005 - 14:09 #7
den anden løsning giver den samme fejl på split funktionen.....  objectet fra rs er et timetamp objevt gætter jeg på.....
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:16 #8
Hvis du gør sådan her:

var fulddato = rs("fakturadato");
fulddato = "" + fulddato;
fulddato = fulddato.split(" ");

Indeholder fulddato så "13-12-2005 14:28:20" eller "Tue Dec 13 14:28:20 UTC+0100 2005"?

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:19 #9
Jeg har godt nok lavet et ASP script (funktion), men det er i VBScript.. ikke JScript..

Ser lige om jeg kan lave det i JavaScript, som jeg går ud fra, også virker i JScript i ASP..

/theSurfer
Avatar billede knaldeglad Nybegynder
15. december 2005 - 14:23 #10
den indeholder "2005Tue,Dec,13,14:28:20,UTC+0100,2005"
Avatar billede knaldeglad Nybegynder
15. december 2005 - 14:23 #11
uden 2005 forrest
Avatar billede knaldeglad Nybegynder
15. december 2005 - 14:24 #12
og det er Jscript....
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:44 #13
Dvs, det kommer ud som "Tue,Dec,13,14:28:20,UTC+0100,2005"? Med komma?

Hvis ja, så skal jeg ikke rette så meget :-)

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:46 #14
Ahhh..

Komma er for at vise, at det er en array, efter split-linie..? :-)

Jeg er alt ok.. rydder lidt op, og smider scriptet her ind..

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:54 #15
Jeg brugte ren JavaScript til at lave scriptet..

Erstat "document.write" med response.write, når du vil udskrive datoen, hvilket gøres sådan her:

document.write( FixDato(rs("fakturadato")) ); // hent og fix dato

selve funktionen, som skal tilføjest oppe før kaldet på FixDato(...):

function FixDato(datostreng)
{
    // erklære de variabler vi skal bruge:
    var i;
    var dato, dag, maaned, aar;
    var maaneder_uk, maaneder_dk, maaneder_tmp, dag_tmp;

    // navnene på månederne, både på dansk og engelsk
    maaneder_uk = "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec";
    maaneder_dk = "jan,feb,mar,apr,maj,jun,jul,aug,sep,okt,nov,dec";

    dato = datostreng.split(" "); // split strengen op ved mellemrum

    // find dag:
    dag = dato[2]; // indeholder 1 - 31
    if (parseInt(dag) < 10) dag = "0" + dag; // tilføj "0" hvis dag er under 10

    // find ud af, om serveren er på dansk eller engelsk:

    maaneder_tmp = dato[1]; // indeholder jan - dec
    maaneder_tmp = maaneder_tmp.toLowerCase(); // konverter navnet på måneden til små bogstaver

    if (maaneder_uk.indexOf(maaneder_tmp) > - 1) { // find ud af, om der bruges danske eller engelske navne
        maaneder_tmp = maaneder_uk // sæt sproget til engelsk
    } else {
        maaneder_tmp = maaneder_dk // sæt sproget til dansk
    }

    // find selve måneden:
    maaneder_tmp = maaneder_tmp.split(",") // split månederne op, for at finde nummeret på måneden
    maaned = dato[1]; // tag måneden fra datostrengen
    for(i = 0; i < maaneder_tmp.length; i++) { // kør en loop, så længe at vi er i måned-området (0-11, ialt 12 stk)
        if (maaned.toLowerCase() == maaneder_tmp[i]) // sammenlign nuværende måned, med den fra listen
        {
            // den korrekt måned er fundet.. snup nummeret på måneden:
            maaned = i + 1; // arrayen start ved 0, og månederne ved 1. læg 1 til, så det passer med månederne
            break; // hop ud af løkken
        }
    }

    if (parseInt(maaned) < 10) maaned = "0" + maaned; // tilføj "0" hvis måned er under 10

    aar = dato[5]; // hent år fra datostrengen

    return dag + "-" + maaned + "-" + aar; // returner datoen i formatet: dd-mm-åååå
}

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 14:58 #16
Du kan også bruge: var dato = FixDato(rs("fakturadato"));

- Svar.

/theSurfer
Avatar billede knaldeglad Nybegynder
15. december 2005 - 15:00 #17
skal da lige love for du er i julehumør....  tusind tak for den fine assistance...
smid et svar...
Avatar billede thesurfer Nybegynder
15. december 2005 - 15:10 #18
hehe :-)

Takker for points :-)

/theSurfer
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