Avatar billede webstuff Nybegynder
01. marts 2006 - 22:19 Der er 5 kommentarer og
1 løsning

udregn dato 68 dage efter indtastet dato

Jeg mangler et script som udregner den præcise dato som er 68 dage efter en dato som er indtastet i en form..
Nogen der kan finde noget til det? :-)
Avatar billede o-zone Nybegynder
02. marts 2006 - 00:12 #1
function calculateDatePlus68(d){
    var dato = new Date(d);
    dato.setTime(dato.getTime()+(68*1000*60*60*24)); //antal milisekunder på 68 dage
    return dato.toLocaleString();
}

...den kræver at d er en date string som kan parses af Date.parse() (f.eks. "Mar 2, 2006") ... kan du ikke få dine brugere til at indtaste det, må du lave en metode som kan oprette et Date objekt ud fra dine brugeres indtastninger.

/o-zone
Avatar billede o-zone Nybegynder
02. marts 2006 - 00:13 #2
hov ... det var jo egentlig et svar :)
Avatar billede eagleeye Praktikant
02. marts 2006 - 00:25 #3
Et lille eksempel som laver en dateobject ud fra en dato i formatet dd/mm/yyyy :


<script language = "Javascript">
function udregn()
{
  var dtCh= "/";
  var dtStr=document.frmSample.txtDate.value
  var pos1=dtStr.indexOf(dtCh)
  var pos2=dtStr.indexOf(dtCh,pos1+1)
  var strDay=dtStr.substring(0,pos1)
  var strMonth=dtStr.substring(pos1+1,pos2)
  var strYear=dtStr.substring(pos2+1)
  strYr=strYear
  month=parseInt(strMonth)
  day=parseInt(strDay)
  year=parseInt(strYr)
   
  var myDate=new Date();
  myDate.setFullYear(year,month-1,day+68);
  document.frmSample.newDate.value = myDate.getDate() + "/" + (1+myDate.getMonth()) + "/" + myDate.getYear();
}
</script>

<form name="frmSample" method="post" action="">
Skrive en dato <b>(dd/mm/yyyy)</b>:
<input type="text" name="txtDate" maxlength="10" size="15">
<input type="text" name="newDate" maxlength="10" size="15">
<input type="button" name="Udregn" value="Udregn" onClick="udregn()">
</form>



Det ville måske være smart at koden også valider om datoen er gyldig og til det kan du bruge koden fra dette link, min kode som er vist tager også udgangs punkt i den kode:
http://www.smartwebby.com/DHTML/date_validation2.asp


Hvis du bruger koden fra linket kan funktionen udregn lave om til det viste nedenfor som bruger funktion isDate til at tjekke formatet af datoen:

function udregn()
{
    var dt=document.frmSample.txtDate
    if (isDate(dt.value)==true){

  var dtCh= "/";
  var dtStr=document.frmSample.txtDate.value
    var pos1=dtStr.indexOf(dtCh)
    var pos2=dtStr.indexOf(dtCh,pos1+1)
    var strDay=dtStr.substring(0,pos1)
    var strMonth=dtStr.substring(pos1+1,pos2)
    var strYear=dtStr.substring(pos2+1)
    strYr=strYear
    month=parseInt(strMonth)
    day=parseInt(strDay)
    year=parseInt(strYr)
   
  var myDate=new Date();
  myDate.setFullYear(year,month-1,day+68);
    document.frmSample.newDate.value = myDate.getDate() + "/" + (1+myDate.getMonth()) + "/" + myDate.getYear();
  }
}
Avatar billede webstuff Nybegynder
02. marts 2006 - 00:55 #4
eagleye.. lægger du et svar.. Der var præcis det jeg ledte efter ;D
Avatar billede eagleeye Praktikant
02. marts 2006 - 16:53 #5
Ok her et svar :)
Avatar billede webstuff Nybegynder
02. marts 2006 - 20:27 #6
Mange tak for hjælpen :-)
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