function zeroFormatInt(TmpInt) { TmpInt = TmpInt-0; if (TmpInt<10){ return '0' + TmpInt; }else{ return TmpInt; } }
function changeDate(dato){ if(!top.document.messageForm.editcheckbox.checked){ top.document.messageForm.selectedDate.value=dato; top.document.getElementById('dato').innerHTML=dato; insertMessage(); return true; }else{ if(confirm('Hvis du ændre i tiden, vil evt. ændringer i beskeden gå tabt.\nØnsker du at fortsætte?')){ top.document.messageForm.selectedDate.value=dato; top.document.getElementById('dato').innerHTML=dato; insertMessage(); top.document.messageForm.editcheckbox.checked=false; top.document.messageForm.CustomerName.disabled = false; top.document.messageForm.message.disabled = true; return true; }else{ return false; } } }
function dateadd(per,n,d) { switch(per) { case "yyyy": d.setYear(d.getFullYear()+n); break case "m": d.setMonth(d.getMonth()+n); break case "ww": n*=7 case "d": d.setDate(d.getDate()+n); break case "h": d.setHours(d.getHours()+n); break case "n": d.setMinutes(d.getMinutes()+n); break case "s": d.setSeconds(d.getSeconds()+n) } return d }
function calculateSendDate(date, hour, min, alertMin){ bookdate = new Date() tmpDate = new String(date); counter = tmpDate.indexOf("-",0) tmpDay = tmpDate.substr(0,counter); tmpDate = tmpDate.substr(counter+1,tmpDate.length); counter = tmpDate.indexOf("-",0); tmpMonth = tmpDate.substr(0,counter); tmpDate = tmpDate.substr(counter+1,tmpDate.length); tmpYear = tmpDate; bookdate.setFullYear(tmpYear); bookdate.setMonth(tmpMonth-1); bookdate.setDate(tmpDay); bookdate.setMinutes(min); bookdate.setHours(hour); bookdate.setSeconds(0); sendDate = new Date(bookdate.toString()); sendDate = dateadd('n',0-alertMin,sendDate) if (sendDate.getMonth()==bookdate.getMonth()){ if (sendDate.getDate()==bookdate.getDate()){ ret = 0; }else{ ret = 1; } }else{ ret = 1; } return ret; }
//--> </SCRIPT>
Jeg får datoen fra en kalender som sender den valgte dato til dette script. Dato formatet er som dette: 25-03-04.
"alertMinuttes" er minut antal som bliver sendt til scriptet fra en selectbox. Alertminuttes er hvor mange minutter før den valgte dato og tidspunkt en sms skal sendes til brugeren.
scriptet skal regne ud om det den i beskeden skal skrive "i morgen" eller "i dag", men den skriver hele tiden kun "i morgen".
..hvad kan problemet være????? Håber jeg har beskrevet det godt nok...
året der bliver sat ind, er 4 ... ikke 2004, derfor bliver datoerne forkerte.
efter denne linie:
sendDate = dateadd('n',0-alertMin,sendDate)
så indeholder 'sendDate' 'NaN', noget du ikke kan sammenligne med. Denne linie:
if (sendDate.getMonth()==bookdate.getMonth()){
læses derfor som:
if( NaN == 2 )
og din if bliver aldrig "true"
ved at skrive denne linie:
bookdate.setFullYear( tmpYear );
om til
bookdate.setFullYear( 20 + tmpYear );
så vli det fungere. Dette forudsetter selvfølgelig at alle dine sms'er bliver sendt i år 2000 eller senere, men det giver vel hellere ingen mening i at booke en sms i fortiden ?!
Problemet er muligvis p.gr.a. MS' måde at lave linie-brud på. I stedet for '\n' indsættes under Windows '\r\n'. Prøv evt. at skrive sådan i toppen af dit script:
"hov" jeg kom vist til at skrive 80 istedet for 20 , hehe. tak for hjælpen...
....der er dog stadig en fejl i mit script. Lige i starten skriver den teksten rigtig, men hvis jeg først vælger at sms'en skal sendes 24 timer før så skriver den "i morgen" i teksten som den skal, men hvis jeg bagefter sætter den til 2 timer før så ændre den det ikke til "i dag"........?????????????
oki ... det bliver nok ret svært for mig at løse det, så. jeg foreslår at du kigger godt i din 'calculateSendDate' function. Det var dér jeg fandt fejlen ... alert dine værdier én efter én for at se hvor det går galt. scriptet fungerer fint for mig når jeg tester med 'alertMinutes = 120', så hvis jeg ikke kan se din side, så bliver det svært at fixe for mig.
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.