Funciones para manipular fechas
Diseñando páginas web, muchas veces tenemos que manipular fechas, realizar cálculos, etc. He aquí unas funciones que serán de gran ayuda.
Suma o resta de una fecha
function dateAdd(per,n,d) { switch(per) { case "y": d.setYear(d.getFullYear()+n); break; case "m": d.setMonth(d.getMonth()+n); break; case "w": n*=7; case "d": d.setDate(d.getDate()+n); break; case "h": d.setHours(d.getHours()+n); break; case "n": d.setMinutes(d.getMinutes()+n); break; case "s": d.setSeconds(d.getSeconds()+n); } return d; }
Parámetros:
- per: (String de 1 posición) es el período deseado. Los valores aceptados son y, año; m, mes; w, semana; d, día; h, hora; n, minutos; y s, segundos.
- n: (Número) valor a incrementar o restar.
- d: (Objeto) Objeto de tipo date, conteniendo la fecha que se quiere modificar.
Retorna un objeto de tipo date con la fecha modificada según lo solicitado.
Sumar meses a una fecha
function SumarMeses(aFec, cant) { var d = Number(aFec[0]); var m = Number(aFec[1]) + Number(cant); var a = Number(aFec[2]); var lBisi = false; if(m > 13) { a++; m -= 12; } if (a % 4 == 0) { if (a % 100 != 0 a % 400 == 0) lBisi = true; } if (m == 2) { if(d > 28) { if(lBisi) d=29; if(!lBisi) d=28; } } if ((m == 4 m == 6 m == 9 m == 11) && d > 30) d = 30; return new Array(d,m,a); }
Parámetros:
- aFec: Objeto de tipo Array de 3 elementos.
- Elemento 0: el día
- Elemento 1: el mes
- Elemento 2: el año, de 4 dígitos.
- cant: número de meses a incrementar o restar
Retorna un objeto del tipo Array conteniendo los mismos elementos que el parámetro aFec, con la fecha modificada.
Diferencia entre dos fechas
function dateDiff(per,d1,d2) { var d = (d2.getTime()-d1.getTime())/1000 switch(per) { case "y": d/=12 case "m": d*=12*7/365.25 case "w": d/=7 case "d": d/=24 case "h": d/=60 case "n": d/=60 } return Math.floor(d); }
Parámetros:
- per: String de una posición que indica el período a calcular: y, años; m, meses; w, semanas; d, días; h, horas; y n, minutos.
- d1: Objeto de tipo Date, con la fecha menor.
- d2: Objeto de tipo Date, con la fecha mayor.
Retorna un número.
0 Comentarios:
Mandar un comentario