Descriere: Coduri pentru lucrul cu date si zile
Download:
Autor: Anonim
Sursa (Link-ul oficial): 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 />'); 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;
} 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 />'); 