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 tip de <input> creaza un camp de text care trebuie sa contina doar numere?
type="text" type="number" type="date"
<input type="number" name="points" min="5" max="80" />
Ce proprietate CSS permite modificarea transparentei unui element?
font-style opacity color
#id {
  filter:alpha(opacity=40);    /* for IE */
  opacity:0.4;
}
Clic pe functia care formateaza un numar la o anumita lungime de caractere.
toPrecision() exp() toFixed()
var num = 12.84567;
alert( num.toPrecision(3) );       // 12.8
Ce functie aranjeaza aleator elementele dintr-un array?
natsort() shuffle() sort()
$lang =[10=>"PHP", 20=>"JavaScript", "site"=>"coursesweb.net");
shuffle($lang);
var_export($lang);     // array (0=>"coursesweb.net", 1=>"PHP", 2=>"JavaScript")
Indicati Superlativul cuvantului "good" (bun).
better best goodest
She is the best in our class.
- Ea este cea mai buna din clasa noastra.
Care este Superlativul cuvantului "bueno" (bun)?
el mejor más bueno muy bueno
Él es el mejor en nuestra clase.
- El este cel mai bun din clasa noastra.
Diferenta dintre doua date de timp si ore

Last accessed pages

  1. Verbe reflexive 2 (1919)
  2. Gramatica limbii spaniole. Indrumator si prezentare generala (70982)
  3. Adaugare sunet la Butoane (232)
  4. Curs HTML gratuit Tutoriale HTML5 (198125)
  5. Pronumele personal (9473)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (107)
  2. Gramatica limbii spaniole. Indrumator si prezentare generala (77)
  3. Teste spaniola - Tests y ejercicios de Español - Gramática (48)
  4. Limba spaniola curs online incepatori si avansati (47)
  5. Accentul si Pronuntia (36)