Výpočet dní medzi dvomi dátumami – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpočet dní medzi dvomi dátumami – JavaScript, AJAX, jQuery – Fórum – Programujte.comVýpočet dní medzi dvomi dátumami – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

fuxo0
Duch
1. 4. 2012   #1
-
0
-

Dobrý deň chalani,

z JavaScriptu neviem v podstate nič a potreboval by som upraviť jeden scriptík...

Ide o výpočet dní medzi dvomi dátumami... Našiel som už konkrétne a funkčné riešenie, ktoré však musím implementovať do redakčného systému (Joomla! + Chronoforms, ale to zrejme nie je smerodajné).
Je to podla mňa triviálny problém, ale po dvoch dňoch štúdia a asi 100 rôznych neuspešných pokusoch a variantách som sa rozhodol vzdať to...

Nasledújúci skript som podľa manuálu "zosmolil" na súčin troch čísel vo formuláry. Neviem, či je to čistý JavaScript, alebo nejaká jeho mutácia, ale v spomínanom CMS to funguje správne.

window.addEvent('domready', function() {
$('aaa').addEvent('change', scitanie);
$('bbb').addEvent('change', scitanie);
$('ccc').addEvent('change', scitanie);
});
function scitanie(){
$('ddd').value = $('aaa').value * $('bbb').value * $('ccc').value;
   }


Nižšie uvádzam funkčný skript na výpočet dní medzi dátumami. Potreboval by som ho upraviť tak, aby tie dátumy spočítaval ihneď po zadaní tak, ako skript vyššie.

<!-- Paste this code into an external JavaScript file named: dateDiff.js  -->
function calcDays(){
  var date1 = document.getElementById('d1').lastChild.data;
  var date2 = document.getElementById('d2').lastChild.data;
  date1 = date1.split("-");
  date2 = date2.split("-");
  var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
  var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
  var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
  document.getElementById('diffDays').lastChild.data = daysApart;
}
onload=calcDays;
<!-- Paste this code into the HEAD -->
<script type="text/javascript" src="dateDiff.js"></script>

<!-- Paste this code into the BODY  -->
<table width='220' border='1' cellspacing='0' cellpadding='5' align="center">
<tr>
<td>Starting<br>Date</td>
<td>Ending<br>Date</td>
<td>Total<br>Days</td>
</tr><tr>
<td id='d1'>01-01-2006</td>
<td id='d2'>08-05-2006</td>
<td id='diffDays' align='center'> </td>
</tr>
</table>

Viacmenej by som len potreboval upraviť druhý vložený skript podľa syntaxu toho prvého (ktorý v komponentne funguje)(ale neviem posúdiť, či je to čistý javascript, možno je to nejaká mutácia... nepoznám JavaScriptový syntax).

Ak vám to nejak pomôže, prikladám link na konkrétny formulár (prvý pastnutý script(funkčný))
http://chrono.smartdirect.sk/index.php?option=com_chronoforms&chronoform=form_datumy

A malo by to byť rozšírené tak, aby nebolo treba ručne zadávat počet nocí, ale bol by počítaný z datapickerov.
http://chrono.smartdirect.sk/index.php?option=com_chronoforms&chronoform=form_datumy_vypocitat

(web prosím neriešte, je to čisto testovacia záležitosť)

Vedel by mi s tým prosím niekto poradiť? Ak sú potrebné nejaké dalšie informácie, rád ich obratom dodám.

(Ak by sa našiel niekto ochotný poradiť mi, prosím, zohľadnite fakt, že s JavaScriptom nemám skutočne žiadne skúsenosti a odpovede je teda potrebné formulovať ako pre blondínku.)

Vopred veľmi pekne ďakujem.

Nahlásit jako SPAM
IP: 213.160.169.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Podobná vlákna

C++ za 21 dni — založil sexmachina

Odpočet dní — založil cheeester

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý