Curs Javascript

Functia prezentata in aceasta pagina, diffDateTime(), poate fi utilizata pentru a obtine diferenta dintre doua date de timp, si ore in JavaScript. Aceasta functie primeste 2 parametri: data /ora de start si cea de sfarsit. Se pot folosi mai multe formate de data si timp: Unix Timestamp (numar in milisecunde), sau un sir continand data si timpul in format Englezesc. Se poate folosi si un sir cu unul din aceste cuvinte: NOW pt data /ora curenta, si TOMORROW pt ziua urmatoare (ora 0:0:1); vedeti in exemplele prezentate dupa codul functiei.

Functie care returneaza diferenta dintre 2 date si ore

Returneaza un obiect cu elemente ce reprezinta diferenta dintre 2 date /ore: numar de zile, ore, minute, secunde, total ore, total minute, si total secunde (vedeti comentariile din cod).
/* Functie pt diferenta dintre 2 date /ore (in Timestamp-milisecunde, sau sir cu Data-Timpul in format Englezesc)
 Se poate folosi si unul din aceste cuvinte: NOW pt data /ora curenta, si TOMORROW pt ziua urmatoare (ora 0:0:1)
 Returneaza un obiect cu aceste elemente {days, hours, minutes, seconds, totalhours, totalmin, totalsec}
*/
function diffDateTime(startDT, endDT){
 // Curs JavaScript & jQuery - https://marplo.net/javascript/
  // daca parametrul e sir, doar ora in hh:mm:ss (cu sau fara AM/PM), creaza obiect Date pt momentul actual,
  // si seteaza ora, minutele, secundele din parametru
  // altfel, daca parametru e "now", seteaza obiect Date cu momentul actual
  // altfel, daca parametru e "tomorrow", seteaza obiect Date cu momentul actual si ora 24 + 1 secunda
  // altfel seteaza obiect Date cu data si timpul din startDT si endDT
  if(typeof startDT == 'string' && startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)){
    startDT = startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
    startDT = startDT.toString().split(':');
    var obstartDT = new Date();
    obstartDT.setHours(startDT[0]);
    obstartDT.setMinutes(startDT[1]);
    obstartDT.setSeconds(startDT[2]);
  }
  else if(typeof startDT == 'string' && startDT.match(/^now$/i)) var obstartDT = new Date();
  else if(typeof startDT == 'string' && startDT.match(/^tomorrow$/i)){
    var obstartDT = new Date();
    obstartDT.setHours(24);
    obstartDT.setMinutes(0);
    obstartDT.setSeconds(1);
  }
  else var obstartDT = new Date(startDT);

  if(typeof endDT == 'string' && endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)){
    endDT = endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
    endDT = endDT.toString().split(':');
    var obendDT = new Date();
    obendDT.setHours(endDT[0]);
    obendDT.setMinutes(endDT[1]);
    obendDT.setSeconds(endDT[2]);  
  }
  else if(typeof endDT == 'string' && endDT.match(/^now$/i)) var obendDT = new Date();
  else if(typeof endDT == 'string' && endDT.match(/^tomorrow$/i)){
    var obendDT = new Date();
    obendDT.setHours(24);
    obendDT.setMinutes(0);
    obendDT.setSeconds(1);
  }
  else var obendDT = new Date(endDT);

  // obtine diferenta in numar de secunde
  // daca diferenta e negativa, orele sunt din zile diferite, si adauga 1 zi (in sec.)
  var secondsDiff = (obendDT.getTime() - obstartDT.getTime()) > 0 ? (obendDT.getTime() - obstartDT.getTime()) / 1000 :  (86400000 + obendDT.getTime() - obstartDT.getTime()) / 1000;
  secondsDiff = Math.abs(Math.floor(secondsDiff));

  var oDiff = {};     // obiect ce va contine datele returnate de functie

  oDiff.days = Math.floor(secondsDiff/86400);
  oDiff.totalhours = Math.floor(secondsDiff/3600);      // total numar de ore in diferenta
  oDiff.totalmin = Math.floor(secondsDiff/60);      // total numar de minute in diferenta
  oDiff.totalsec = secondsDiff;      // total numar de secunde in diferenta

  secondsDiff -= oDiff.days*86400;
  oDiff.hours = Math.floor(secondsDiff/3600);     // numar de ore dupa zile

  secondsDiff -= oDiff.hours*3600;
  oDiff.minutes = Math.floor(secondsDiff/60);     // numar de minute dupa ore

  secondsDiff -= oDiff.minutes*60;
  oDiff.seconds = Math.floor(secondsDiff);     // numar de secunde dupa minute

  return oDiff;
}

- Exemplu utilizare functie diffDateTime(), cu diferite formate de data-timp. Rezultatul va fi adaugat intr-un tag HTML cu id="testdtdiff".
<div id="testdtdiff"></div>
<script type="text/javascript"><!--
// Aici se adauga functia diffDateTime()

  /* 1.) Diferenta dintre 2 ore (in hours:min:sec) */
var objDiff = diffDateTime('8:35:6', '8:55:34 AM');
var dtdiff = objDiff.days+ ' zile, '+ objDiff.hours+ ' ore, '+ objDiff.minutes+ ' minute, '+ objDiff.seconds+ ' secunde';
var total_hours = 'Total Ore: '+ objDiff.totalhours;
var total_min = 'Total minute: '+ objDiff.totalmin;

// adauga rezultatul in elementul #testdtdiff
document.getElementById('testdtdiff').innerHTML += '1.) <b>"8:35:6", "8:55:34"</b><br/>Diferenta: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 2.) Diferenta dintre o data anterioara si "now" (momentul curent) */
var objDiff = diffDateTime('07/19/2012 14:10:00', 'now');
var dtdiff = objDiff.days+ ' zile, '+ objDiff.hours+ ' ore, '+ objDiff.minutes+ ' minute, '+ objDiff.seconds+ ' secunde';
var total_hours = 'Total Ore: '+ objDiff.totalhours;
var total_min = 'Total minute: '+ objDiff.totalmin;

// adauga rezultatul in elementul #testdtdiff
document.getElementById('testdtdiff').innerHTML += '<br/><br/>2.) <b>"07/19/2012 14:10:00", "now"</b><br/>Diferenta: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 3.) Diferenta dintre "now" (momentul curent) si "tomorrow" (prima secunda din ziua urmatoare) */
var objDiff = diffDateTime('NOW', 'TOMORROW');
var dtdiff = objDiff.days+ ' zile, '+ objDiff.hours+ ' ore, '+ objDiff.minutes+ ' minute, '+ objDiff.seconds+ ' secunde';
var total_hours = 'Total Ore: '+ objDiff.totalhours;
var total_min = 'Total minute: '+ objDiff.totalmin;

// adauga rezultatul in elementul #testdtdiff
document.getElementById('testdtdiff').innerHTML += '<br/><br/>3.) <b>"NOW", "TOMORROW"</b><br/>Diferenta: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 4.) Diferenta dintre 2 date si ore */
var objDiff = diffDateTime('August 25, 2012 14:10:00', '09/18/2012 08:25:00');
var dtdiff = objDiff.days+ ' zile, '+ objDiff.hours+ ' ore, '+ objDiff.minutes+ ' minute, '+ objDiff.seconds+ ' secunde';
var total_hours = 'Total Ore: '+ objDiff.totalhours;
var total_min = 'Total minute: '+ objDiff.totalmin;

// adauga rezultatul in elementul #testdtdiff
document.getElementById('testdtdiff').innerHTML += '<br/><br/>4.) <b>"August 25, 2012 14:10:00", "09/18/2012 08:25:00"</b><br/>Diferenta: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 5.) Diferenta dintre 2 date-timp, cu Timestamp (in milisecunde) */
var objDiff = diffDateTime(1348012438000, 1348029429000);
var dtdiff = objDiff.days+ ' zile, '+ objDiff.hours+ ' ore, '+ objDiff.minutes+ ' minute, '+ objDiff.seconds+ ' secunde';
var total_hours = 'Total Ore: '+ objDiff.totalhours;
var total_min = 'Total minute: '+ objDiff.totalmin;

// adauga rezultatul in elementul #testdtdiff
document.getElementById('testdtdiff').innerHTML += '<br/><br/>5.) <b>1348012438000, 1348029429000</b><br/>Diferenta: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;
--></script>
Ca sa vedeti rezultatul acestor exemple, clic:

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce element HTML adauga continut flash SWF in pagina web?
<object> <div> <script>
<object type="application/x-shockwave-flash" data="file.swf" width="500" height="250">
 <param name="src" value="file.swf" />
 Browser-ul dv. nu suporta SWF.
</object>
Care pseudo-clasa CSS adauga un stil la un camp input de formular cand e cursorul in el?
:active :focus :hover
input:focus {
  background-color: #88fe88;
}
Clic pe instructiunea care transforma un sir JSON in obiect JavaScript.
JSON.stringify(javascript_object) object.toString() JSON.parse(json_string)
var jsnstr = '{"url": "http://coursesweb.net/", "title": "Web Development Courses"}';
var obj = JSON.parse(jsnstr);
alert(obj.url);
Indicati functia PHP care poate crea sau scrie un fisier pe server.
fopen() file_put_contents() file_get_contents()
if (file_put_contents("file.txt", "content")) echo "Fisierul a fost creat";
else echo "Fisierul nu poate fi creat";
Cum se spune "al treilea" in engleza?
threeth third three
I planted the third tree.
- Am plantat al treilea pom.
Cum se spune "al treilea" in spaniola?
segundo tres tercero
Yo planté el tercero árbol.
- Am plantat al treilea pom.
Diferenta dintre doua date de timp si ore

Last accessed pages

  1. Creare tabele HTML (17202)
  2. Multiple Liste Select cu JavaScript (483)
  3. Por si Para (3985)
  4. Break si Continue (4037)
  5. Teste Programare Web (3448)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (540)
  2. Coduri pt culori (339)
  3. Gramatica limbii engleze - Prezentare Generala (255)
  4. Cursuri limba engleza gratuite si lectii online (239)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (206)