Avatar billede intim Nybegynder
23. juli 2001 - 16:57 Der er 19 kommentarer og
1 løsning

klokken ændre status

Jeg har et recordset med disse værdier:

indeks = \"1\"
start_tid_hh = \"14\"
start_tid_mm = \"30\"
slut_tid_hh = \"17\"
start_tid_mm = \"00\"
status = \"1\"

så man tager

tot_tid = start_tid - slut_tid (= 14.30 - 17.00 = 2.30)

halvdelen af tot_tid = 1.15

skifte_tid = slut_tid + tot_tid (= 17.00 + 1.15 = 18.15)

hvis time(nu) > skifte_tid så set status = \"2\"

Er der nogen der kan guide og vejlede her ???

Avatar billede bbs Nybegynder
23. juli 2001 - 17:04 #1
i den her stil?

Den første linien sættes ind i body

<body onload=\"doClock()\">

Resten sættes bare ind !!!!!

<script language=\"JavaScript\">

  function doClock() {
    window.setTimeout( \"doClock()\", 1000 );
    today = new Date();
    self.status = today.toString();
  }
</script>
Avatar billede intim Nybegynder
23. juli 2001 - 17:13 #2
bbs -> Det gjorde mig ikke særlig klog....jeg er lidt våd bag ørene på javascript siden.

Jeg havde fortstillede mig at funktionen ligger på en side, som folk kommer ind forbi reglmæssigt, derfor behøver den ikke at opdatere klokken hele tiden.
Avatar billede roenving Novice
23. juli 2001 - 17:18 #3

function checkTime(start_hh, start_mm, slut_hh, slut_mm) {
  var start = new Date();
  start.setHours(start_hh);
  start.setMinutes(start_mm);
  var slut = new Date();
  slut.setHours(slut_hh);
  slut.setMinutes(slut_mm);
  var diff = slut.getMilliseconds-start.getMilliseconds
  if (new Date()>slut+diff/2){
      document.status.value=\"2\"
  }
}

Var det det?-]
Avatar billede intim Nybegynder
23. juli 2001 - 17:19 #4
jeg tror jeg omformulere mig...
opretter et spg lige straks
Avatar billede roenving Novice
23. juli 2001 - 17:19 #5
Ups ... (for nu at bruge en hvis andens herres (dames?~}) udtryksmåde

function checkTime(start_hh, start_mm, slut_hh, slut_mm) {
  var start = new Date();
  start.setHours(start_hh);
  start.setMinutes(start_mm);
  var slut = new Date();
  slut.setHours(slut_hh);
  slut.setMinutes(slut_mm);
  var diff = slut.getMilliseconds-start.getMilliseconds
  if (new Date().getMilliseconds>slut.getMilliseconds+diff/2){
      document.status.value=\"2\"
  }
}

hth
jes
Avatar billede roenving Novice
23. juli 2001 - 17:20 #6
Ups Ups Ups ...

function checkTime(start_hh, start_mm, slut_hh, slut_mm) {
  var start = new Date();
  start.setHours(start_hh);
  start.setMinutes(start_mm);
  var slut = new Date();
  slut.setHours(slut_hh);
  slut.setMinutes(slut_mm);
  var diff = slut.getMilliseconds-start.getMilliseconds;
  if (new Date().getMilliseconds>slut.getMilliseconds+diff/2){
      document.status.value=\"2\";
  }
}

hth
jes 
Avatar billede intim Nybegynder
23. juli 2001 - 17:20 #7
venter lige...den må prøves....!
Avatar billede intim Nybegynder
23. juli 2001 - 17:24 #8
Så burde denne også virke, hvis altså jeg vil have datoen med ?

function checkTime(start_hh, start_mm, slut_hh, slut_mm) {
  var start = new Date();
  start.setDate(start_dato);
  start.setHours(start_hh);
  start.setMinutes(start_mm);
  var slut = new Date();
  slut.setDate(slut_dato);
  slut.setHours(slut_hh);
  slut.setMinutes(slut_mm);
  var diff = slut.getMilliseconds-start.getMilliseconds;
  if (new Date().getMilliseconds>slut.getMilliseconds+diff/2){
      document.status.value=\"2\";
  }
}
Avatar billede roenving Novice
23. juli 2001 - 17:30 #9
Ja, men så skal du sikkert også overføre den som parameter -- eller hvis det er faste felter du henter værdier i, kan du jo bare adressere denm direkte:

document.start_dato.value

;~}
Avatar billede roenving Novice
23. juli 2001 - 17:32 #10
Iøvrigt kan du på constructoren skrive alt det ind direkte, men da du kun angav time og minut var det nødvendigt, at bruge setHours osv.

var start = new Date(\"Month dd. yyyy hh:mm:ss\");

hth
jes
Avatar billede intim Nybegynder
23. juli 2001 - 17:34 #11
;-)

...men en lille ting...mine variabler er i asp betyder det noget ? Eller vil du anbefale jeg åbner et rs i javascript og sætter variablerne....Og kan man det???
Avatar billede roenving Novice
23. juli 2001 - 17:41 #12
Hvis du bruger asp, så ender værdierne vel på en eller anden måde som felt-værdier i dit dokument, så kan du bruge dem direkte i en javascript-funktion, den kan du så sætte til at køre med mellemrum, feks.:

function checkTime(start_hh, start_mm, slut_hh, slut_mm) {
  var start = new Date();
  start.setDate(start_dato);
  start.setHours(start_hh);
  start.setMinutes(start_mm);
  var slut = new Date();
  slut.setDate(slut_dato);
  slut.setHours(slut_hh);
  slut.setMinutes(slut_mm);
  var diff = slut.getMilliseconds-start.getMilliseconds;
  if (new Date().getMilliseconds>slut.getMilliseconds+diff/2){
      document.status.value=\"2\";
  }
  setTimeout(checkTime, 60000, start_hh, start_mm, slut_hh, slut_mm);
}

-- og så kalde checkTime i <BODY onLoad=\"checkTime(start_hh, start_mm, slut_hh, slut_mm);\"

=:·]
Avatar billede intim Nybegynder
23. juli 2001 - 17:53 #13
ok jeg har også en anden løsning....

Jeg har en access db med kolonnerne :

arkiv
tid_fra_hh
tid_fra_mm
tid_til_hh
tid_til_mm
dato_til

når en tilfældig bruger kommer forbi siden skal den tjekke alle rækker hvor arkiv = 1 osv...

på siden opretter jeg:
<form name=\"form1\" method=\"post\" action=\"\">
  <input type=\"text\" name=\"arkiv\">
  <input type=\"text\" name=\"tid_fra_hh\">
  <input type=\"text\" name=\"tid_fra_mm\">
  <input type=\"text\" name=\"tid_til_hh\">
  <input type=\"text\" name=\"tid_til_mm\">\">
  <input type=\"text\" name=\"dato_til\">
</form>
Med de rigtige values.

Kan du lave funktionen smider jeg 200 extra point, eller har du selv et bud...?
Avatar billede roenving Novice
23. juli 2001 - 18:02 #14
Mener du i asp ?-[ -- der er jeg nemlig slet ikke hjemme !~|

-- og i klienten (=dokumentet) -- hvor vi jo afvikler javascriptet fra, har du jo kun eet sæt data, så dem kan du jo bruge i javascript-funktionen.

Men da du (ser det ud til) skal bruge din formular til at indsamle nogle data, er jeg sikker på, at du relativt nemt kan checke dine kolonner i Access-db\'en, når du får data ind.

hth
jes
Avatar billede intim Nybegynder
23. juli 2001 - 18:10 #15
Det hele drejer sig om at brugeren ikke skal se poster hvor status = 2
En post bliver til status 2, når der er gået x tid  efter slut_tid hvor x = ½ * start_tid - slut_tid.
Jeg har sgu lidt svært ved at greje den, for hvis jeg bruger almindelige regne regler, så dør funktionen hvis skifte_status_tid er efter 24.00

Ved du derimod om man kan sige date() + 1 og så lægger den en dag til ???
Avatar billede roenving Novice
23. juli 2001 - 18:18 #16
Jamen, det er heldigvis fidusen ved at bruge getMilliseconds, for den tager tiden fra d. 1/1-1970 (i millisekunder), så hvis du opretter dine Date-objekter med angivelse af dato, så vil den new Date(), som er i if-sætningen bare være et antal millisekunder, som er større end det andet tidspunkt.

for at bruge dine data fra starten (let modificerede)

indeks = \"1\"
start_tid_hh = \"20\"
start_tid_mm = \"30\"
slut_tid_hh = \"23\"
start_tid_mm = \"00\"
status = \"1\"

så vil (i funktionen)

diff være 9000000, diff/2 være 4500000
dette tal vil bare blive blive lagt til slut og derfor afspejle kl. 00:15 den næste dag!~)

jes
PS! Jeg gad ikke lige finde de andre astronomiske tal (antal millisekunder indtil i dag), men ideen er der da.
Avatar billede roenving Novice
23. juli 2001 - 18:26 #17
Hvis du har brug for at skrue dagen een op, så skal du jo samtidig sørge for at stille tiden, men \'bare\' lægge en dag til er såvidt jeg kan gennemskue det:

Date.setMilliseconds(Date.getMilliseconds+86400000)

hvor 86400000 er 24(t)*60(min)*60(sek.)*1000(milli)

Hvis du alene vil sætte en dato, så sætter new-metoden på Date-objektet tiden til kl. 00:00:00 - objektet eksisterer altså kun med både dato og tid.

mvh
jes
Avatar billede intim Nybegynder
23. juli 2001 - 18:31 #18
disse værdier

function checkTime(start_hh, start_mm, slut_hh, slut_mm)

Hvordan kan jeg sætte dem så javascriptet kan læse dem ?

Skal jeg sætte dem ind i en form oven over scriptet eller....?
Avatar billede intim Nybegynder
23. juli 2001 - 18:42 #19
Det ser mest af alt ud til at jeg har lidt at læse op på, da jeg ikke er så stærk på date og time siden.
Lige nu er jeg henne i at først lidt asp så lidt javascript og så lidt asp i en pærevælding af et  loop......bladr !

Du skal i hvert fald have tak !
Avatar billede roenving Novice
23. juli 2001 - 18:47 #20
Hvis du altid ved hvor de er:

så behøver du ikke at overføre dem som parametre, men kan nøjes med:

function checkTime()

og så adressere dem inde i funktionen sådan:
document.forms.formNavn.start_hh.value,
document.forms.formNavn.start_mm.value,
document.forms.formNavn.slut_hh.value,
document.forms.formNavn.slut_mm.value

mvh
jes

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