In javascript date variables are objects, assignment are by reference not by value, so you can't simply duplicate variable assigning it's value to another. The cloneDate function duplicates variables of date type.
ITA: Ho voluto raccogliere alcune utili funzioni javascript per la manipolazione delle date. Lo sò che ne esistono tante e migliori di queste, ma sono quelle che uso spesso per il mio lavoro, perciò ho deciso di condividerle e di metterle in posto comodo.
In javascript le date sono degli oggetti, l'assegnazione è per riferimento e non per valore, quindi non è possibile duplicare una variabile data assegnando il valore ad un'atra variabile.
La funzione cloneDate serve appunto per duplicare una variabile di tipo data.
cloneDate = function(d) { // Duplicate Date Type Variable var dd = new Date(); dd.setTime(d.getTime()); return(dd); } yesterday = function() { var dd = new Date(); dd.setDate(dd.getDate()-1); return(dd); } tomorrow = function() { var dd = new Date(); dd.setDate(dd.getDate()+1); return(dd); } roundDo = function(d) { // Arrotonda alla Domenica precedente // Round date to the previous Sunday var dd = cloneDate(d); dd.setDate(dd.getDate() - dd.getDay()); return(dd); }; roundLu = function(d) { // Arrotondo al Lunedì precedente // Round to the previous Monday var dd = cloneDate(d); dd.setDate(dd.getDate() - 1); dd.setDate(dd.getDate() - dd.getDay() +1); return(dd); }; roundMe = function(d) { // Arrotondo al Mercoledì precedente // Round to the previus Wednesday var dd = cloneDate(d); dd.setDate(dd.getDate() + 4); dd.setDate(dd.getDate() - dd.getDay() -4); return(dd); }; roundGi = function(d) { // Arrotondo al giovendì precedente // Round to the previuos Thursday var dd = cloneDate(d); dd.setDate(dd.getDate() + 3); dd.setDate(dd.getDate() - dd.getDay() -3); return(dd); }; roundFirst = function(d) { // Arrotonda la primo giorno del mese // Round to the first day of month var dd = cloneDate(d); dd.setDate(1); return(dd); }; roundLast = function(d) { // Arrotonda all'ultimo giorno del mese // Round to the last day of month var dd = cloneDate(d); dd.setDate(1); dd.setMonth(d.getMonth()+1); dd.setDate(0); var fmtdd=formatDT(dd); var fmtM2=formatDT(dateM2); if (date.compare(dd, dateM2) > 0){ dd=dateM2; } return(dd); }; roundLastCompleteMonth = function() { // Primo giorno dell'ultimo mese completo // First day of the last completed month var d = new Date(); return(new Date(d.getFullYear(), d.getMonth() - 1, 1)); };
Nessun commento:
Posta un commento