Avatar billede kovalt Nybegynder
27. januar 2006 - 15:26 Der er 20 kommentarer og
1 løsning

Dato plus dag samt formatering

Hej

  Jeg har en dato på formen 13-03-2006. Til denne dato vil jeg gerne have lagt x-antal dage som er indeholdt i var intAntalDogn. Resultatet skal vises på sammen form som inputtet nemlig dd-mm-åååå.

På forhånd tak

/Kovalt
Avatar billede roenving Novice
27. januar 2006 - 17:05 #1
Måske skulle du få fat i mit Date-enhancement library: http://roenving.users.whitehat.dk/date/roenvingDate.html !-)
Avatar billede kovalt Nybegynder
27. januar 2006 - 17:59 #2
hej

Det var da godt nok en farlig masse. Skal man virkelig bruge sådan nogle store funktioner for det?
Avatar billede roenving Novice
27. januar 2006 - 18:22 #3
Næh, man kan sagtens tage præcis det ud, du har behov for, det er jo netop et samlet bibliotek, som kan en masse forskelligt ...

-- det kan f.eks. laves sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Sæt dato</title>
</head>
<script type="text/javascript" src="roenvingDate.js"></script>
<script type="text/javascript">
var intAntalDogn = 25;
function newDate(elm){
  if(!elm.value.match(/^\d\d\-\d\d\-\d\d\d\d/)){
    alert("Fejl i datoformatet");
    elm.select();
    elm.focus();
    return false;
  }
  var d = elm.value.split("-");
  var dato = new Date(d[2],d[1]-1,d[0]);
  if(dato.getFullYear() != d[2] || dato.getMonth()+1 != d[1] || dato.getDate() != d[0]){
    alert("Ugyldig dato !-)");
    elm.select();
    elm.focus();
    return false;
  }
  var slut = dato.dateDiff("set",0,0,intAntalDogn);
  elm.form.slutDato.value = slut.format("dd-mm-yyyy");
}
</script>
<body>
<form>
...
<br><input id="startDato" name="startDato" type="text" value="dd-mm-åååå" onchange="return newDate(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="10">
<br><input id="slutDato" name="slutDato" type="text" value="" readonly="readonly" size="10">

</form>
</body>
</html>

-- bemærk, at det er valideringerne, der tager meget kode, selve de to vigtige funktioner klares på hhv. een linje og som en værditildeling !-)
Avatar billede kovalt Nybegynder
27. januar 2006 - 19:51 #4
Jeg har nedenstående:

function calcGyldigTOM(){
    intAntalDogn = document.pkortForm.antalDogn.value;
    strStartDate = document.pkortForm.fra.value;
    intFraTimer = document.pkortForm.fraTimer.value;
    intFraMinut = document.pkortForm.fraMinut.value;

    var d = strStartDate.split("-");
    var strDate = new Date(d[2],(+d[1])-1,d[0],intFraTimer,intFraMinut,0)
*    var slutDato = strDate.dateDiff("set",0,0,intAntalDogn);
}
men den smider en fejl i linien markeret med *
Avatar billede kovalt Nybegynder
27. januar 2006 - 19:54 #5
fejlen er "objektet understøtter ikke denne egenskab eller metode". Det lader ikke til at den kan finde ud af at strDate er en dato?
Avatar billede roenving Novice
28. januar 2006 - 12:33 #6
-- har du importeret mit bibliotek ?-)
Avatar billede kovalt Nybegynder
31. januar 2006 - 13:17 #7
jeg kan ikke komme ind på din side :-(
Avatar billede roenving Novice
31. januar 2006 - 13:39 #8
-- der har været problemer, fordi der er flyttet til en anden server, men den er da oppe nu ?-)
Avatar billede roenving Novice
31. januar 2006 - 13:50 #9
Hrm, min FireFox hentede den umiddelbart, men i IE fik jeg den ikke ?-)
Avatar billede roenving Novice
31. januar 2006 - 13:53 #10
-- men jeg skal da gerne sende det til dig !-)

-- læg en adresse, let krypteret, f.eks. dig [at] post [dot] dk ...
Avatar billede kovalt Nybegynder
01. februar 2006 - 13:28 #11
jeg får en fejl som følger:

Argument(s) not supported
Failure on string

Mine dato-streng bliver datten som følger:

    var d = strStartDate.split("-");
    var date = new Date(d[2],(+d[1])-1,d[0],intFraTimer,intFraMinut,00)

og ser således ud når jeg ud skriver den:

Mon Feb 6 00:00:00 UTC +0100 2006

Jeg går ud fra det er formatet der er forkert? Jeg kan ligeledes se at hverken minut- eller timeangivelsen kommer med i min dato?

/Torben
Avatar billede roenving Novice
01. februar 2006 - 13:35 #12
-- den skal lige konvereteres til et tal:

    var slutDato = strDate.dateDiff("set",0,0,+intAntalDogn);
Avatar billede kovalt Nybegynder
01. februar 2006 - 14:27 #13
Jeg synes jeg får samme fejl.

function calcGyldigTOM(){
    intAntalDogn = document.pkortForm.antalDogn.value;
    strStartDate = document.pkortForm.fra.value;
    intFraTimer = document.pkortForm.fraTimer.value;
    intFraMinut = document.pkortForm.fraMinut.value;

    var d = strStartDate.split("-");
    var date = new Date(d[2],(+d[1])-1,d[0],intFraTimer,intFraMinut,00)
    var slutDato = date.dateDiff("set",0,0,+intAntalDogn);
}
Avatar billede kovalt Nybegynder
01. februar 2006 - 14:29 #14
Kan den godt hitte ud af at jeg sender et tidspunkt med (tt:mm:ss) og er det den rigtige måde jeg gør det på?
Avatar billede kovalt Nybegynder
01. februar 2006 - 14:35 #15
nej nu spiller det...... mænne tak....

Smider du et svar..
Avatar billede roenving Novice
01. februar 2006 - 14:36 #16
Velbekomme '-)
Avatar billede kovalt Nybegynder
01. februar 2006 - 14:40 #17
kan jeg bruge din format() til at få vist dd-mm-yyyy tt:mm
Avatar billede roenving Novice
01. februar 2006 - 14:52 #18
Jeps, f.eks.

    var slutDato = date.dateDiff("set",0,0,+intAntalDogn);
    return slutDato.format("dd-mm-yyyy tt:uu")
}
Avatar billede kovalt Nybegynder
01. februar 2006 - 15:06 #19
tt bliver ikke erstattet med timer - men bliver blot udskrevet som tt
Avatar billede kovalt Nybegynder
01. februar 2006 - 15:07 #20
det var hh i stedet for tt....

tak for hjælpen
Avatar billede roenving Novice
01. februar 2006 - 15:10 #21
Argh, selvfølgelig, det glemte jeg at checke ,-(

-- og jeg takker for point ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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