Inicio > Programación Web > Javascript: Numero de días entre dos fechas

Javascript: Numero de días entre dos fechas

viernes, 29 de diciembre de 2023 Dejar un comentario Ir a comentarios

Para un proyecto reciente, necesitaba la capacidad de calcular el número de días entre dos fechas. En el lenguaje VB, esto es bastante fácil de hacer. Pero yo necesitaba hacerlo en la web. Después de un poco de búsqueda, encontré un trozo de código en http://javascript.internet.com que era capaz de modificarlo para adaptarse a mis necesidades. He modificado el código para ser una función genérica, y pensé en compartirlo.


function daysBetween(date1, date2){ 
   if (date1.indexOf("-") != -1) { date1 = date1.split("-"); } else if (date1.indexOf("/") != -1) { date1 = date1.split("/"); } else { return 0; } 
   if (date2.indexOf("-") != -1) { date2 = date2.split("-"); } else if (date2.indexOf("/") != -1) { date2 = date2.split("/"); } else { return 0; } 
   if (parseInt(date1[0], 10) >= 1000) { 
       var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
   } else if (parseInt(date1[2], 10) >= 1000) { 
       var sDate = new Date(date1[2]+"/"+date1[0]+"/"+date1[1]);
   } else { 
       return 0; 
   } 
   if (parseInt(date2[0], 10) >= 1000) { 
       var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
   } else if (parseInt(date2[2], 10) >= 1000) { 
       var eDate = new Date(date2[2]+"/"+date2[0]+"/"+date2[1]);
   } else { 
       return 0; 
   } 
   var one_day = 1000*60*60*24; 
   var daysApart = Math.abs(Math.ceil((sDate.getTime()-eDate.getTime())/one_day)); 
   return daysApart; 
} 

Ten en cuenta que se supone que las cadenas de fechas se pasan con un separador de fecha: un guión o una barra. La función Date en JavaScript toma como parámetros un año, luego mes (0-11), y luego el día. La función busca 4 dígitos, ya sea en la primera «parte» o la última «parte» y lo establece, como el año. Para el mes y el día, el primer » dígitos no de cuatro» aparentemente son el mes y el segundo es el día. Así que, básicamente, el formato puede ser AAAA-MM-DD o DD-MM-AAAA y el separador puede ser una barra o un guión y el mes y el día puede ser un dígito o dos dígitos (el año debe ser de cuatro dígitos).

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
Top Footer