Avatar billede askhoej Praktikant
07. september 2001 - 11:02 Der er 16 kommentarer og
1 løsning

Tilføj dag til dato

Hvordan tilføjer man en dag til en dato i javascript?

Jeg har forsøgt med nedenstående, men gir også dato
som ikke eksisterer: f.eks. 31-09-2001 :-(

var _D = new Date(<%=jsYear%>,<%=jsMonth%>,<%=jsDay%>,0,0,0,0);
var _d = 1000 * 60 * 60 * 24;
function moveDate(_v)
{
  if(_v)
  {
    _D.setTime(_D.getTime() - _d);
  }
  else
  {
    _D.setTime(_D.getTime() + _d);
  }
  document.tid.dato.value=showDate(_D);
  document.tid.submit();
}

nogen gode ideer?
Avatar billede podata Nybegynder
07. september 2001 - 11:10 #1
<script language=\"JavaScript\">
dato=new Date();
dag=dato.getDay();
ugedag=new Array(\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\");
document.write(ugedag[dag]);
</script>
Avatar billede askhoej Praktikant
07. september 2001 - 11:15 #2
Hej podata

Når jeg skriver tilføjer en dag til en dato, mener jeg:  dag + dato = ny dato
Avatar billede roenving Novice
07. september 2001 - 11:17 #3
Prøv med getMilliseconds og setMilliseconds i stedet for setTime og getTime.

hth
jes
Avatar billede podata Nybegynder
07. september 2001 - 11:20 #4
OK...
Avatar billede askhoej Praktikant
07. september 2001 - 11:21 #5
Hej jes

Det giver ikke nogen forskel.
Avatar billede roenving Novice
07. september 2001 - 11:37 #6
Årh ...

Har du sørget for, at din showDate-funktion tager højde for at måneder i Javascript er med base 0 altså at januar er måned 0 og december er måned 11 !!

Den klarede helt umulige ting, da jeg prøvede, den kunne f.eks. oversætte 2001,1,30 osv. - 1 dag = 1/3, -1 dag mere 28/2

Det må være det.

mvh jes
Avatar billede askhoej Praktikant
07. september 2001 - 11:42 #7
Her er showdate-funktionen:

function showDate(_day)
{
  var newday = _day.getDate();
  var newmonth = _day.getMonth();
  if(newday == 1 || newday == 2 || newday == 3 || newday == 4 || newday == 5 || newday == 6 || newday == 7 || newday == 8 || newday == 9){
  newday = \"0\"+newday;
  }
  if(newmonth == 1 || newmonth == 2 || newmonth == 3 || newmonth == 4 || newmonth == 5 || newmonth == 6 || newmonth == 7 || newmonth == 8 || newmonth == 9){
  newmonth = \"0\"+newmonth;
  }
  var _return =\"\";
      _return+=newday;
      _return+=\"-\"+newmonth;
      _return+=\"-\"+_day.getYear();
  return(_return);
}
Avatar billede roenving Novice
07. september 2001 - 11:44 #8
Det skal du lave om til:
var newmonth = _day.getMonth()+1;
Avatar billede roenving Novice
07. september 2001 - 11:47 #9
Vil det iøvrigt ikke blive mere overskueligt, hvis du laver din +0-if\'s om:

IKKE
if(newday == 1 || newday == 2 || newday == 3 || newday == 4 || newday == 5 || newday == 6 || newday == 7 || newday == 8 || newday == 9){
  newday = \"0\"+newday;
  }

Men
if(newday<10)newday = \"0\"+newday;

mvh
jes
Avatar billede askhoej Praktikant
07. september 2001 - 11:47 #10
Det går da vist ikke
Avatar billede jakoba Nybegynder
07. september 2001 - 12:34 #11
var _D = new Date(<%=jsYear%>,<%=jsMonth%>,<%=jsDay%>,0,0,0,0);
var _d = 1000 * 60 * 60 * 24;
function moveDate(_v)
{
  if(_v)
  {
    _D = new Date( _D.valueOf() - _d );
  }
  else
  {
    _D = new Date( _D.valueOf() + _d );
  }
  document.tid.dato.value=showDate(_D);
  document.tid.submit();
}

PS: Prø at undgå variabelnavne der starter med _  De er lovligem men især Netscape bryder sig ikke meget om dem og kan give problemer.

mvh JakobA
Avatar billede askhoej Praktikant
07. september 2001 - 13:22 #12
Hey JakobA

Ovenstående giver ingen forskel.

Hvis jeg ligger en dag til d. 30-09-2001, så for
jeg den 31.09.2001 - og det er skidt!
Avatar billede roenving Novice
07. september 2001 - 13:24 #13
det er stadig fordi den måned, som har nummer 9 er oktober!
Avatar billede askhoej Praktikant
07. september 2001 - 13:34 #14
ahhh...nu er jeg med
Avatar billede jakoba Nybegynder
07. september 2001 - 13:41 #15
  var newmonth = _day.getMonth()+1;
Avatar billede roenving Novice
07. september 2001 - 13:42 #16
>>jakoba
Du er altså lidt langsom i dag: 07/09 2001 11:44:54

*GG*
Avatar billede jakoba Nybegynder
07. september 2001 - 13:45 #17
>> tydeligvis. :-))
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