Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP] Różnica między godzinami
matius71
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Witam,

Chciałem wykonać dynamiczne liczenie różnicy między godziną A a godziną B

Chodzi o dwa pola input w jednym podajemy godzine 16:20 w drugim 18:40 i cały myk żeby w trzecim polu pokazywała się różnica między tymi polami 02:20 ale bez odświerzania strony.

Chętnie poczytam jakieś tutoriale jak to zrobić lub postaram się dopasować jakiś istniejący kod.
Go to the top of the page
+Quote Post
Crash89
post
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

Ostrzeżenie: (0%)
-----


Poczytaj o javascript lub zainteresuj się biblioteką jQuery do javascriptu.

Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Crash89 super, i jak to ma niby ma pomoc w problemie? Rownie dobrze mogles napisal by poczytal o historii swiata...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Crash89
post
Post #4





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 14.05.2018, 14:18:56 ) *
@Crash89 super, i jak to ma niby ma pomoc w problemie? Rownie dobrze mogles napisal by poczytal o historii swiata...


Nie zauważyłem że w temacie matius71 już napisał javascript, ale można napisać w jquery:

  1.  
  2. var time1 = $('#time1').val();
  3. var time2 = $('#time2').val();
  4.  
  5. var splitTime1 = time1.split(":");
  6. var splitTime2 = time2.split(":");
  7.  
  8. var hours = splitTime1[0] - splitTime2[0];
  9. var minutes = splitTime1[1] - splitTime2[1];
  10.  
  11. $('#result').text(hours + ":" + minutes);
  12.  


jeszcze możesz dodać zdarzenie keyup, czyli po wpisaniu danych do inputa, skrypt automatycznie zmieniał pole result.

Ten post edytował Crash89 14.05.2018, 14:29:53
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale można napisać w jquery:

Problem rozwiazales w czystym js... nawet nie wiesz czego uzywasz.
jQuery uzyles tutaj tylko po to by pobrac zawartosc z inputow. Rownie dobrze i krotko mogles to zrobic w czystym js.

Kolejna sprawa ze twoj kod dziala tylko polowicznie.
Ok, dla 16:20 w drugim 18:40 moze nawet zwroci poprawny wynik. A teraz sprobuj dla pary: 16:20 w drugim 18:10


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Crash89
post
Post #6





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 14.05.2018, 15:39:11 ) *
Problem rozwiazales w czystym js... nawet nie wiesz czego uzywasz.
jQuery uzyles tutaj tylko po to by pobrac zawartosc z inputow. Rownie dobrze i krotko mogles to zrobic w czystym js.

Kolejna sprawa ze twoj kod dziala tylko polowicznie.
Ok, dla 16:20 w drugim 18:40 moze nawet zwroci poprawny wynik. A teraz sprobuj dla pary: 16:20 w drugim 18:10


i do zapisania wartości użyłem jquery.
A co do problemu to tutaj trzeba dodać ify, które sprawdzą która wartość jest wyższa lub skorzystać z funkcji wartości bezwzględnej (Math.abs(value)).
Z jquery poleciłem też użyć funkcję keyup.

Chciałem tylko pomóc i nakierować kolegę na rozwiązanie problemu, nie napisać za niego kod.

Ten post edytował Crash89 14.05.2018, 14:49:27
Go to the top of the page
+Quote Post
sazian
post
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Cytat
var time1 = '12:20';
var time2 = '11:30';

da wynik 1:-10 ;p
całość należy przeliczyć na minuty lub sekundy zależnie jaka ma być dokładność,
odjąć od siebie i różnice ponownie przeliczyć na godziny i minuty.
Go to the top of the page
+Quote Post
matius71
post
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Dobra, przeliczanie godziny na min sobie zrobię w php. Mam takie pola formularza:

  1. <div class="form-row">
  2. <div class="form-group col-md-4">
  3. <label class="control-label">Godzina A</label>
  4. <input type="time" name="A" id="A" class="form-control input-lg" placeholder="" value="<?php $A ?>" tabindex="1">
  5. </div>
  6. <div class="form-group col-md-4">
  7. <label class="control-label">Godzina B</label>
  8. <input type="time" name="B" id="B" class="form-control input-lg" placeholder="" value="<?php $B ?>" tabindex="2">
  9. </div>
  10. <div class="form-group col-md-4">
  11. <label class="control-label">Różnica</label>
  12. <input type="text" name="C" id="C" class="form-control input-lg" placeholder="" value="<?php $C ?>" tabindex="3" disabled>
  13. </div>


Może mi ktoś pomóc w osadzeniu tego kodu który jest wyżej tak żeby się coś zaczęło wyświetlać? JS jest mi potrzebne tylko w jednym miejscu więc nie mam za bardzo pojęcia jak to zrobić. Czy wartości w polu "Różnica" będą się zmieniały bez odświeżania strony?

Wielkie dzięki za pomoc.
Go to the top of the page
+Quote Post
Neutral
post
Post #9





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Użyj do tego np. Ajax'a z JS. Gotowy przykład z MDN:

https://developer.mozilla.org/en-US/docs/We...Getting_Started

Kod
httpRequest.send('userName=' + encodeURIComponent(userName));


W linii powyżej userName to nazwa wartości, którą odbierzesz POST'em w PHP.

Example:

  1. <?php
  2. $user_name = $_POST['userName'];
  3. if($user_name=='matius'){
  4. echo 'Hello Matius';
  5. }else{
  6. echo 'Hello there';
  7. }
  8. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:40