Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript]Obliczanie czasu w JS
Forum PHP.pl > Forum > Przedszkole
php__amator
Witam serdecznie, dobry wieczór smile.gif

Od pewnego czasu raczkując uczę się - bo inaczej nie można tego nazwać - robić cokolwiek więcej niż tylko ustawiać ramki
i wklejać obrazki.
Budując moję dzieła staram się korzystać z wielu różnych sposobów, używać HTML, JS, PHP i czego tam się jeszcze da
do robienia przeróżnych dziwnych czasem rzeczy i efekt powoli zaczyna być dostrzegalny. Coś tam mi z tego zaczyna wychodzić

Ale dość tego samochwalstwa, potrzebuję podpowiedzi jak używając JS obliczyć czas, nie będę owijał tylko powiem o co mi chodzi, mianowicie:
przychodzi koleś do roboty np w poniedziałek o godzinie 10:00 i kończy o 18:30
we wtorek o 10:30 i pracuje do 19:00
we środę od 9:00 do 17:00
itd aż do niedzieli bo przecież praca nie hańbi.
no, i teraz chciałbym w formularzu wprowadzić poszczególne godziny/dni pracy i otrzymać wyniki ile godzin każdego dnia pracował plus podsumowanie
całego tygodnia które pozniej zostanie zapisane do bazy.
  1. <div class="table" id="1"><table border="0"><tr>
  2. <td nowrap="nowrap"> </td>
  3. <td align="center" nowrap="nowrap"><a class="button"><span>Start</span></a></td>
  4. <td align="center" nowrap="nowrap"><a class="button"><span>End</span></a></td>
  5. <td align="center" nowrap="nowrap"><a class="button"><span>Breaks</span></a></td>
  6. <td align="center" nowrap="nowrap"><a class="button"><span>hours total:</span></a></td>
  7. </tr>
  8. <tr>
  9. <td nowrap="nowrap"><a class="button"><span>Monday</span></a></td>
  10. <td size="10" nowrap="nowrap"><form method="POST" id="week"><input align="center" size="10" name="mondays" type="text"/></td>
  11. <td size="10" nowrap="nowrap"><input align="center" size="10" name="mondaye" type="text"/></td>
  12. <td size="10" nowrap="nowrap"><input align="center" size="10" name="mondayb" type="text"/></td>
  13. <td nowrap="nowrap"><?php $mmo = new DateTime($_POST['mondays']);
  14. $tmo = new DateTime($_POST['mondaye']);
  15. $dmo = $mmo->diff($tmo);
  16. //echo 'Worked hours: ';
  17. //echo ' ' . $d->days . ' day ';
  18. echo ' ' . $dmo->h . ' hour ';
  19. echo ' ' . $dmo->i . ' minutes ';
  20. //echo ' ' . $d->s . ' seconds ';
  21. ?><?php echo ''.$dmo->h.':'.$dmo->i; ?></td>
  22. </tr>
  23. <tr>
  24. <td nowrap="nowrap"><a class="button"><span>Tuesday</span></a></td>
  25. <td size="10" nowrap="nowrap"><input align="center" size="10" name="tuesdays" type="text"/></td>
  26. <td size="10" nowrap="nowrap"><input align="center" size="10" name="tuesdaye" type="text"/></td>
  27. <td size="10" nowrap="nowrap"><input align="center" size="10" name="tuesdayb" type="text"/></td>
  28. <td nowrap="nowrap"><?php $mtu = new DateTime($_POST['tuesdays']);
  29. $ttu = new DateTime($_POST['tuesdaye']);
  30. $dtu = $mtu->diff($ttu);
  31. //echo 'Worked hours: ';
  32. //echo ' ' . $d->days . ' day ';
  33. echo ' ' . $dtu->h . ' hour ';
  34. echo ' ' . $dtu->i . ' minutes ';
  35. //echo ' ' . $d->s . ' seconds ';
  36. ?><?php echo ''.$dtu->h.':'.$dtu->i; ?></td>
  37. </tr>
  38. <tr>
  39. <td nowrap="nowrap"><a class="button"><span>Wednesday</span></a></td>
  40. <td size="10" nowrap="nowrap"><input align="center" size="10" name="wednesdays" type="text"/></td>
  41. <td size="10" nowrap="nowrap"><input align="center" size="10" name="wednesdaye" type="text"/></td>
  42. <td size="10" nowrap="nowrap"><input align="center" size="10" name="wednesdayb" type="text"/></td>
  43. <td nowrap="nowrap"><?php $mwe = new DateTime($_POST['wednesdays']);
  44. $twe = new DateTime($_POST['wednesdaye']);
  45. $dwe = $mwe->diff($twe);
  46. //echo 'Worked hours: ';
  47. //echo ' ' . $d->days . ' day ';
  48. echo ' ' . $dwe->h . ' hour ';
  49. echo ' ' . $dwe->i . ' minutes ';
  50. //echo ' ' . $d->s . ' seconds ';
  51. ?><?php echo ''.$dwe->h.':'.$dwe->i; ?></td>
  52. </tr>
  53. <tr>
  54. <td nowrap="nowrap"><a class="button"><span>Thursday</span></a></td>
  55. <td size="10" nowrap="nowrap"><input align="center" size="10" name="thursdays" type="text"/></td>
  56. <td size="10" nowrap="nowrap"><input align="center" size="10" name="thursdaye" type="text"/></td>
  57. <td size="10" nowrap="nowrap"><input align="center" size="10" name="thursdayb" type="text"/></td>
  58. <td nowrap="nowrap"><?php $mth = new DateTime($_POST['thursdays']);
  59. $tth = new DateTime($_POST['thursdaye']);
  60. $dth = $mth->diff($tth);
  61. //echo 'Worked hours: ';
  62. //echo ' ' . $d->days . ' day ';
  63. echo ' ' . $dth->h . ' hour ';
  64. echo ' ' . $dth->i . ' minutes ';
  65. //echo ' ' . $d->s . ' seconds ';
  66. ?><?php echo ''.$dth->h.':'.$dth->i; ?></td>
  67. </tr>
  68. <tr>
  69. <td nowrap="nowrap"><a class="button"><span>Friday</span></a></td>
  70. <td size="10" nowrap="nowrap"><input align="center" size="10" name="fridays" type="text"/></td>
  71. <td size="10" nowrap="nowrap"><input align="center" size="10" name="fridaye" type="text"/></td>
  72. <td size="10" nowrap="nowrap"><input align="center" size="10" name="fridayb" type="text"/></td>
  73. <td nowrap="nowrap"><?php $mfr = new DateTime($_POST['fridays']);
  74. $tfr = new DateTime($_POST['fridaye']);
  75. $dfr = $mfr->diff($tfr);
  76. //echo 'Worked hours: ';
  77. //echo ' ' . $d->days . ' day ';
  78. echo ' ' . $dfr->h . ' hour ';
  79. echo ' ' . $dfr->i . ' minutes ';
  80. //echo ' ' . $d->s . ' seconds ';
  81. ?><?php echo ''.$dfr->h.':'.$dfr->i; ?></td>
  82. </tr>
  83. <tr>
  84. <td nowrap="nowrap"><a class="button1"><span>Saturday</span></a></td>
  85. <td size="10" nowrap="nowrap"><input align="center" size="10" name="saturdays" type="text"/></td>
  86. <td size="10" nowrap="nowrap"><input align="center" size="10" name="saturdaye" type="text"/></td>
  87. <td size="10" nowrap="nowrap"><input align="center" size="10" name="saturdayb" type="text"/></td>
  88. <td nowrap="nowrap"><?php $msa = new DateTime($_POST['saturdays']);
  89. $tsa = new DateTime($_POST['saturdaye']);
  90. $dsa = $msa->diff($tsa);
  91. //echo 'Worked hours: ';
  92. //echo ' ' . $d->days . ' day ';
  93. echo ' ' . $dsa->h . ' hour ';
  94. echo ' ' . $dsa->i . ' minutes ';
  95. //echo ' ' . $d->s . ' seconds ';
  96. ?><?php echo ''.$dsa->h.':'.$dsa->i; ?></td>
  97. </tr>
  98. <tr>
  99. <td nowrap="nowrap"><a class="button1"><span>Sunday</span></a></td>
  100. <td size="10" nowrap="nowrap"><input align="center" size="10" name="sundays" type="text"/></td>
  101. <td size="10" nowrap="nowrap"><input align="center" size="10" name="sundaye" type="text"/></td>
  102. <td size="10" nowrap="nowrap"><input align="center" size="10" name="sundayb" type="text"/></td>
  103. <td nowrap="nowrap"><?php $msu = new DateTime($_POST['sundays']);
  104. $tsu = new DateTime($_POST['sundaye']);
  105. $dsu = $msu->diff($tsu);
  106. //echo 'Worked hours: ';
  107. //echo ' ' . $d->days . ' day ';
  108. echo ' ' . $dsu->h . ' hour ';
  109. echo ' ' . $dsu->i . ' minutes ';
  110. //echo ' ' . $d->s . ' seconds ';
  111. ?><?php echo ''.$dsu->h.':'.$dsu->i; ?></td>
  112. </tr><input type="submit" name="submit" value="Submit"/></form>
  113. </table></div>

tu jest częściowo zrobione ale w php a ja chciałbym to w JS żeby mi natychmiast po wprowadzeniu danych pokazywało czas pracy
a nie dopiero po przesłaniu danych z formularza.

Proszę jeśli możecie wklepać mi przykład z uwzględnieniem "inputów" co bym nie kombinował gdzie i w jaki sposób wpisać.

Pozdrawiam
phpamator
kamil4u
No to google + "time operation js" i szukasz podobnych funkcji jak te w PHP.

Jeśli czegoś nie rozumiesz napisz czego konkretnie, to wtedy z chęcią pomożemy. Na razie wygląda na to, że nawet nie spróbowałeś samemu rozwiązać problem.
php__amator
Hej,
No powiem szanownemu koledze, że nawet sie pokwapiłem ale nie bardzo kumam co do czego.
I tu na podkładkę przykład z sieci który znalazłem:

[javascript]
std = knownEndTime - knownStartTime; // set a standard time interval for your comparison.
diffo = end - start; if (diffo > std) { // code for diffo is greater than the standard interval
}else {
// code for diffo is less than or equal to the standard interval
}
std = knownEndTime - knownStartTime; // set a standard <strong class="highlight">time</strong> interval for your comparison.
diffo = end - start;
if (diffo > std) {
// code for diffo is greater than the standard interval
}
else {
// code for diffo is less than or equal to the standard interval
}
[javascript]
kamil4u
Znowu rzucasz kodem, który nic nie znaczy. Wziąłeś fragment z internetu i uważasz, że Twoja rola się skończyła...

Zróbmy inaczej...
Napisz sam cały skrypt w JS, a to czego nie umiesz zrobić opisz np.
[JAVASCRIPT] pobierz, plaintext
  1. var dataStart = ..... /*Nie umiem pobrać wartości daty z inputa o id="test"*/
  2. ///////////////
  3. if( .... ) /*tu warunek sprawdzający blabla - próbowałem użyć blabla funkcji, ale chyba tego dobrze nie rozumiem blabla mógłbyś opisać blabla */
[JAVASCRIPT] pobierz, plaintext


Wtedy sam wiele się nauczysz, a i my skupimy się na sednie problemu, a nie na pisaniu dla Ciebie całego kodu(forum ma pomagać, a nie dawać gotowce smile.gif )

Pozdrawiam
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.