[Tutorial JS] Coduri pentru lucrul cu date si zile

#1
Nume Tutorial: Coduri pentru lucrul cu date si zile
Descriere: Coduri pentru lucrul cu date si zile
Download:
Autor: Anonim
Sursa (Link-ul oficial):
tutorialeonline
Propria parere: Folositor.
Tutorialul:

În php am scris mai demult câteva funcţii utile pentru lucrul cu data, chestii utile peste care te poţi lovi zilnic...
De curând am avut nevoie de acelaşi lucru dar în javascript, aşa că m-am apucat să rescriu unele din funcţiile din tutorialul de php - Scripturi pentru lucrul cu date şi zile - şi a rezultat ceea ce vedeţi mai jos:

1. Calcularea numărului de zile între 2 date :

Cod: Selectaţi tot

 /*
 * calcularea numarului de zile intre 2 date
 */
 
 /*
 * varianta detaliata fara functii
 */
 // data 1
 var data1 = '2009-07-11'; // YYYY-mm-dd
 // data 2
 var data2 = '2009-07-13';
 // separam data in bucati
 var valori_data1 = data1.split('-');
 var valori_data2 = data2.split('-');
 // setam data in formatul acceptat pentru instantiere
 var fd1 = valori_data1[1]+'/'+valori_data1[2]+'/'+valori_data1[0]; // mm-dd-YYYY
 var fd2 = valori_data2[1]+'/'+valori_data2[2]+'/'+valori_data2[0];
 // setam instanta pentru data
 var d1 = new Date(fd1);
 var d2 = new Date(fd2);
 // preluam timpul pentru cele 2 date
 var t1 = d1.getTime();
 var t2 = d2.getTime();
 //setam nr de milisecunde pentru 1 zi
 var o_zi=1000*60*60*24
 // calcularea nr de zile diferenta
 var zdif = Math.ceil((t2 - t1)/(o_zi))
 // afisam nr de zile diferenta
 document.write('Data start: ' + data1 + '<br />');
 document.write('Data stop: ' + data2 + '<br />');
 document.write('Diferenta zile: ' + zdif + '<br />'); 
şi o altă variantă

Cod: Selectaţi tot

/*
 * varianta simplificata cu functii
 */
 // data 1
 var data1 = '2009-07-11'; // YYYY-mm-dd
 // data 2
 var data2 = '2009-07-13';
 // separam data in bucati
 var valori_data1 = data1.split('-');
 var valori_data2 = data2.split('-');
 // setam data in formatul acceptat pentru instantiere
 var fd1 = valori_data1[1]+'/'+valori_data1[2]+'/'+valori_data1[0]; // mm-dd-YYYY
 var fd2 = valori_data2[1]+'/'+valori_data2[2]+'/'+valori_data2[0];
 // setam instanta pentru data
 var d1 = new Date(fd1);
 var d2 = new Date(fd2);
 // afisam nr de zile diferenta
 document.write('Data start: ' + data1 + '<br />');
 document.write('Data stop: ' + data2 + '<br />');
 document.write('Diferenta zile prin functie: ' + nr_zile_intre(d1, d2) + '<br />');
 /*
 * returneaza nr de zile dintre 2 date
 *
 * @param dt1 - valoarea instantei pentru prima data
 * @param dt2 - valoarea instantei pentru a doua data
 *
 * @return nr_zile - nr de zile diferenta
 */
 function nr_zile_intre(d1, d2) {
 
    //setam nr de milisecunde pentru 1 zi
    var o_zi=1000*60*60*24;
    // preluam timpul pentru cele 2 date
    var t1 = d1.getTime();
    var t2 = d2.getTime();
    // calculam diferenta in milisecunde
    var dif = Math.abs(t1 - t2);
    // converteste milisecundele in zile
    var nr_zile = Math.round(dif/o_zi);
    // returnam nr de zile
    return nr_zile;
 } 
Mai jos aveţi un cod care afişează data calculată începând de la data specificată + nr de zile:

Cod: Selectaţi tot

 /*
 * afisarea unei date de la data specificata + x zile
 */
 // data 1
 var data1 = '2009-07-11'; // YYYY-mm-dd
 // separam data in bucati
 var valori_data1 = data1.split('-');
 // setam data in formatul acceptat pentru instantiere
 var fd1 = valori_data1[1]+'/'+valori_data1[2]+'/'+valori_data1[0]; // mm-dd-YYYY
 // setam instanta pentru data
 var d1 = new Date(fd1);
 // nr de zile diferenta
 var zile = 2;
 // compunem data noua
 var data_noua = d1.getTime() + 1000 * 60 * 60 * 24 * zile;
 // setam instanta pentru data noua
 var d2 = new Date(data_noua);
 // data 2
 var data2 = d2.getFullYear() + '-' + (d2.getMonth() + 1) + '-' + d2.getDate();
 // afisam data noua
 document.write('Data start: ' + data1 + '<br />');
 document.write('Data stop: ' + data2 + '<br />');
 document.write('Diferenta zile: ' + zile + '<br />'); 

Înapoi la “Tutoriale JS”

Cine este conectat

Utilizatori răsfoind acest forum: Niciun utilizator înregistrat și 2 vizitatori