Avatar billede madsens90 Praktikant
09. maj 2008 - 17:04 Der er 11 kommentarer og
1 løsning

Fra "Var diff" i JS, til if ($diff > 60) i PHP.

Hej. Jeg har som prøvet at beskrive i spørgsmåls titelen et problem med at bruge noget "jeg" har lavet i javascript i et PHP script.

Indtil videre ser det hele ud som herunder, og spørgsmålet hvor jeg har fået hjælp til at komme dertil er her:

(http://www.eksperten.dk/spm/829384)


$name = $session->username;
$dato_og_tid = date("YmdHis");
          $sql = "SELECT * FROM tf_produkter WHERE `username` = '$name' LIMIT 1";
          $result = mysql_query($sql);
          while($opdateringer = @mysql_fetch_array($result)){
       
    $opdateringstid = $opdateringer[opdateringstid];

$diff = 0;
 
?>
<script type="text/javascript">
var diff;
var t = ["<? echo"$dato_og_tid"; ?>","<? echo"$opdateringstid"; ?>"];
var d = [];
for(i=0;1>=i;i++){
  var u = t[i].split("");
  d[i] = new Date( +(u[0]+u[1]+u[2]+u[3]), +(u[4]+u[5])-1, +(u[6]+u[7]), +(u[8]+u[9]), +(u[10]+u[11]), +(u[12]+u[13]));
}
diff = (d[0].getTime() - d[1].getTime())/1000;

</script>
<?
/* Beregning af $diff udfra $dato_og_tid og $opdateringstid */
?>
<script type='text/javascript'>
var diff = <? echo "$diff"; ?>;

alert(<? echo "$diff"; ?>);
</script>
<?
if ($diff > 60) {

Og problemet er så at $diff i bunden lige nu bare er 0, i stedet for at være det som den er sat til i javascripten.
Avatar billede nielle Nybegynder
09. maj 2008 - 20:41 #1
PHP scriptet bliver kørt på serveren. Derefter bliver resultatet sendt til klienten. Første derefter bliver JavaScript koden kørt. Du kan altså ikke uden videre få resultatet fra dir JA over i dit PHP.
Avatar billede madsens90 Praktikant
09. maj 2008 - 23:48 #2
Har du så et forslag til hvad jeg kan gøre, når jeg efter:
if ($diff > 60) {
har ca 5 update felter til min database i php? :-)
Avatar billede nielle Nybegynder
10. maj 2008 - 09:29 #3
Det må du godt forklare lidt mere.
Avatar billede olebole Juniormester
10. maj 2008 - 13:13 #4
<ole>

Du sløjfer vel bare JavaScriptet og udfører beregningen i PHP i stedet  =)

/mvh
</bole>
Avatar billede madsens90 Praktikant
12. maj 2008 - 14:22 #5
Det er jeg desværre ikke mesteren i. :/

Men kunne godt tænke på at lærer at lave sådanne ting i PHP.

Så olebole: Hvis du har en hjemmeside hvor jeg evt. kan lærer at lave det selv, ville det være super.

Og hvis du evt. ville vise mig hvordan jeg laver det, så ville det være mere en super! :-)
Avatar billede madsens90 Praktikant
13. maj 2008 - 18:25 #6
nielle..

det ser ud som beskrevet i mit spørgsmål, og så i bunden af det jeg har skrevet, har jeg skrevet:
if ($diff > 60) {
og efter den linie kommer der en masse updater felter til min database i php..

Det ville være rigtig lækkert hvis i havde et forslag.. :-)
Avatar billede nielle Nybegynder
13. maj 2008 - 18:57 #7
madsens90, når jeg beder om at du forklare det lidt nærmere så er det nok ikke nok at skrive at du allerede har skrevet det; Så må du meget gerne forsøge at forklare problemet nærmere eller på en anden måde. Hvad mener du f.eks. med et "update felt"?

Jeg er enige med olebole i at det da bare skal laves helt i PHP. PHP kan nemlig sagtens regne med datoer:

Du har allerede brugt date() til din $dato_og_tid. Denne laver et tidspunkt som egner sig godt til at blive læst af mennesker. I stedet burde du bruge time() som laver en tids-værdi på en facon som PHP selv kan forstå meget bedre:

http://dk2.php.net/manual/en/function.time.php

Denne kan du kombinere med mktime() som kan lave en tilsvarende tids-værdi ud af din $opdateringstid:

En anden funktion du kan bruge er mkdate():

http://dk2.php.net/manual/en/function.mktime.php

Måden at bruge den på svare lidt til hvordan du bruger Date()-constructoren i din javascript kode.

Disse to tids-værdier kan sammenlignes direkte. Linket til time() funktionen ovenfor har nogle kodeeksempler på hvrodan man kan regne med tidspunkter i PHP.
Avatar billede nielle Nybegynder
17. juni 2008 - 06:28 #8
Hvad med noget respons?
Avatar billede nielle Nybegynder
25. juni 2008 - 17:43 #9
??
Avatar billede madsens90 Praktikant
01. september 2008 - 21:05 #10
Jeg takker mange gange! :) Jeg har brugt time(), så det hele virkede. :D
Avatar billede nielle Nybegynder
01. september 2008 - 21:41 #11
Takker for point :^)
Avatar billede madsens90 Praktikant
01. september 2008 - 23:07 #12
Selv tak. :P hehe
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