Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Różnica między godzinami
Forum PHP.pl > Forum > Przedszkole
matius71
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.
Crash89
Poczytaj o javascript lub zainteresuj się biblioteką jQuery do javascriptu.

nospor
@Crash89 super, i jak to ma niby ma pomoc w problemie? Rownie dobrze mogles napisal by poczytal o historii swiata...
Crash89
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.
nospor
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
Crash89
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.
sazian
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.
matius71
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.
Neutral
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.