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 o paleta de culori pentru selectare culoare?
type="text" type="color" type="date"
<input type="color" name="get_color" />
Care metoda CSS roteste elementul HTML la un anumit numar de grade?
scale() translate() rotate()
#some_id:hover {
  transform: rotate(60deg);
  -ms-transform: rotate(60deg);    /* IE 9 */
  -moz-transform: rotate(60deg);   /* Firefox */
}
Click pe functia care returneaza numarul cel mai mare.
pow() min() max()
var maxn = Math.max(8, 4, 88, 56);
alert(maxn);      // 88
Ce functie previne ca un fisier sa fie inclus mai mult de o data intr-o pagina?
include() include_once() require()
include_once("un_fisier.php");
Care este traducerea corecta pentru: "Ahead of time"?
Peste timp La timp Inainte de vreme
Most people arrived ahead of time.
- Cei mai multi oameni au sosit inainte de vreme (prea devreme).
Indicati traducerea corecta a cuvantului "buenĂ­simo"
mai bun mai putin bun extrem de bun
Este fruto es buenĂ­simo.
- Acest fruct este extrem /nemaipomenit de bun.
Diferenta dintre doua date de timp si ore

Last accessed pages

  1. Poezii pentru copii, in engleza (39408)
  2. Adjectivul in limba engleza - The adjective (24512)
  3. Lucrul cu mai multe cadre (3414)
  4. OOP - Constante, Proprietati si Metode Statice (3812)
  5. Node.js - Lectia de inceput, instalare (1919)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (411)
  2. Gramatica limbii engleze - Prezentare Generala (395)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (368)
  4. Exercitii engleza - English Tests and exercises - Grammar (304)
  5. Prezentul simplu - Exercitii si teste incepatori (263)