Avatar billede summersun Nybegynder
10. juni 2003 - 19:08 Der er 21 kommentarer

underlig dato

<%
function millisecToDate(time){
   
  var temp = new Date(time);
  realTime = temp.getDate() + "-" + temp.getMonth() + "-" + temp.getYear();
 
  return realTime;

}
%>

<script>
function convertDate(felt) {

  temp = felt.value.split("-");
  dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10), parseInt(temp[0], 10));
  tid = dato.getTime();

  return tid;
}
</script>


jeg har et mærkeligt problem.. når jeg indtaster en dato f.eks 30-06-2003 og convertere den først med convertDate og så gemmer den i database... og så henter den frem igen... convertere den tilbage med millisecToDate

så kommer der til at stå 29-06-2003.. det sammen gælder for måned 07 og 08..

men med 30-10-2003... og 30-09-2003

så fungere det fint.... så hvad pokker er der galt?
Avatar billede olebole Juniormester
10. juni 2003 - 21:36 #1
<ole>

Du kikser i måneden ... der er Date() lidt 'sjov'  ;o)
Prøv med denne linie i stedet:
  dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10)-1, parseInt(temp[0], 10));

/mvh
</bole>
Avatar billede hossein Nybegynder
10. juni 2003 - 21:39 #2
Prøv med:
realTime=(temp.getDate() + 0) +"-"+(temp.getMonth()+ 1) +"-"+temp.getYear();
Avatar billede summersun Nybegynder
10. juni 2003 - 21:47 #3
ole>>

nu er det ikk fordi jeg har prøvet....

men hvorfor i alverden skal jeg trække en fra?


når den i nogle tilfælde godt fungere og andre ikk gøre det? :)
Avatar billede olebole Juniormester
10. juni 2003 - 22:18 #4
1. Det må du nok spørge vedkommende, der har skrevet Date-objektet, om  :)

Den fungerer ikke nogle gange, men fejlen ses ikke altid ... formodentlig afhængig af den aktuelle måneds max-antal dage.
/mvh
Avatar billede summersun Nybegynder
10. juni 2003 - 22:19 #5
ols>>
men nu har jeg lige prøvet det du gav mig ole... den trækker stadig 1 fra dagen og nu også en fra måneden


hossein >>
ligger bare en til måneden...
Avatar billede hossein Nybegynder
10. juni 2003 - 22:24 #6
Javascript numbers the months January to December from 0 to 11.
Men Har du problemer med når du indsætter data inde i din felt eller når du udskriver :) eller begge dele? Hvad for en DB er det?
Avatar billede summersun Nybegynder
10. juni 2003 - 22:27 #7
den havde jeg lidt regnet ud ;)... men jeg kan ikk se hvad det skulle hjælpe at ændre på måneden for... eftersom datoerne ikk overskrider nogle grænse


fejlen må vel ligge når jeg sætter dem ind.. vil jeg tro..

bruger Mysql, feltet det bliver gemt i.. er en BigInt...
Avatar billede olebole Juniormester
10. juni 2003 - 22:32 #8
Test uden at have databasen imellem. Hvad sker der så?
Avatar billede hossein Nybegynder
10. juni 2003 - 22:36 #9
jeg har en VBScript Funktion vil du ha den?
Avatar billede olebole Juniormester
10. juni 2003 - 22:38 #10
Hvorfor skifte til et dårligere performende sprog? Er det ikke bedre at lære - og samtidig opretholde den gode performance?  :)
/mvh
Avatar billede hossein Nybegynder
10. juni 2003 - 22:42 #11
Om det er dårligt, spørg mig ikke, Det er bare nemmer at følge med? Ah, perform er en gammel udtryk i disse dage :) I love Billy :)))

det var bare et forslag
Avatar billede summersun Nybegynder
10. juni 2003 - 23:10 #12
<html>

<script>

function convertDate() {

    var _f = document.forms.frmTid ;

      temp = _f.tid.value.split("-");

      dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10), parseInt(temp[0], 10));
      tid = dato.getTime();
      _f.tid.value = tid;

      _f.submit();
}

</script>

<body>


<form action="testtid.asp" method="get" name="frmTid">
<input type="text" name="tidd"><br>
<input type="button" onclick="convertDate()" value="test">
</form>

</body>


</html>




<%@ LANGUAGE = JScript%>
<%

var tid;

function millisecToDate(time){

    var temp = new Date(time);
    realTime = temp.getDate() + "-" + temp.getMonth() + "-" + temp.getYear();

    return realTime;
}


tid = Request.Form("tid");
test = millisecToDate(tid);
Response.Write(test);


%>


http://www.ry27.dk/lab/tid.html

fatter det ikk.. den gider ikk udskrive noget nu.. skriver 30-10-2003
Avatar billede summersun Nybegynder
10. juni 2003 - 23:12 #13
hov... det det være POST og ikk GET....
Avatar billede summersun Nybegynder
10. juni 2003 - 23:12 #14
<html>

<script>

function convertDate() {

    var _f = document.forms.frmTid ;

      temp = _f.tidd.value.split("-");

      dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10), parseInt(temp[0], 10));
      tid = dato.getTime();
      _f.tidd.value = tid;

      _f.submit();
}

</script>

<body>


<form action="testtid.asp" method="post" name="frmTid">
<input type="text" name="tidd"><br>
<input type="button" onclick="convertDate()" value="test">
</form>

</body>


</html>
Avatar billede summersun Nybegynder
10. juni 2003 - 23:14 #15
<%@ LANGUAGE = JScript%>
<%
Response.AddHeader ("pragma","no-cache");
Response.AddHeader ("cache-control","private");
Response.CacheControl = "no-cache";

var tid;

function millisecToDate(time){

    var temp = new Date(time);
    realTime = temp.getDate() + "-" + temp.getMonth() + "-" + temp.getYear();

    return realTime;
}


tid = Request.Form("tidd");
test = millisecToDate(tid);
Response.Write(test);


%>
Avatar billede summersun Nybegynder
10. juni 2003 - 23:32 #16
http://www.ry27.dk/lab/tid.html

sådan så kører det.... men den regner stadig datoen forkert
Avatar billede bootlab Nybegynder
10. juni 2003 - 23:51 #17
Avatar billede summersun Nybegynder
10. juni 2003 - 23:55 #18
fint fint....

men nu kører jeg jo uden om databasen.. :) og der skulle gerne være taget højde for række følgende osv
Avatar billede olebole Juniormester
11. juni 2003 - 00:19 #19
Du må prøve at alert'e dine millisekunder ud på begge sider - altså inden du sender og lige når du modtager. Som du kan se, fejler scriptet ikke noget:

<html>
<script>
function millisecToDate(time) {
    var temp = new Date(time);
    realTime = temp.getDate() + "-" + temp.getMonth() + "-" + temp.getYear();
    alert(realTime);
}
function convertDate() {
    var _f = document.forms.frmTid ;
      temp = _f.tidd.value.split("-");
      dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10), parseInt(temp[0], 10));
      tid = dato.getTime();
    millisecToDate(tid);
      //_f.tidd.value = tid;
      //_f.submit();
}

</script>
<body>


<form action="testtid.asp" method="post" name="frmTid">
<input type="text" name="tidd"><br>
<input type="button" onclick="convertDate()" value="test">
</form>

</body>
</html>
Avatar billede olebole Juniormester
11. juni 2003 - 00:22 #20
Du kan også rette 'post' til 'get' og alert'e millisekunderne ud lige inden submit. Så kan du se, om alert'en og 'tidd' i adresselinien er ens
Avatar billede olebole Juniormester
11. juni 2003 - 00:30 #21
Undskyld ... det er et tilfælde, scriptet ovenfor virker. Det skal selvfølgelig se sådan ud:

<script>
function millisecToDate(time) {
    var temp = new Date(time);
    realTime = temp.getDate() + "-" + (temp.getMonth()+1) + "-" + temp.getYear();
    alert(realTime);
}
function convertDate() {
    var _f = document.forms.frmTid ;
      temp = _f.tidd.value.split("-");
      dato = new Date(parseInt(temp[2], 10), parseInt(temp[1], 10)-1, parseInt(temp[0], 10));
      tid = dato.getTime();
    millisecToDate(tid);
      //_f.tidd.value = tid;
      //_f.submit();
}
</script>

... men jeg ved ikke, om det hjælper dig  :)
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