Introducción al curso

1

¡Alto! Tenemos una nueva versión de este curso para ti

2

Bienvenidos al Curso de Fundamentos de JavaScript

3

Repositorio de este curso de fundamentos de JS

Primeros pasos en JavaScript

4

Variables

5

Variables: Strings

6

Variables: Números

7

Funciones

8

El alcance de las funciones

9

Objetos

10

Desestructurar objetos

11

Parámetros como referencia o como valor

12

Comparaciones en JavaScript

Estructuras de Control y Funciones

13

Condicionales

14

Funciones que retornan valores

15

Arrow functions

16

Estructuras repetitivas: for

17

Estructuras repetitivas: while

18

Estructuras repetitivas: do-while

19

Condicional múltiple: switch

Arrays

20

Introducción a arrays

21

Filtrar un array

22

Transformar un array

23

Reducir un array a un valor

Programación Orientada a Objetos en JavaScript

24

Cómo funcionan las clases en JavaScript

25

Modificando un prototipo

26

El contexto de las funciones: quién es this

27

La verdad oculta sobre las clases en JavaScript

28

Clases en JavaScript

Asincronismo

29

Funciones como parámetros

30

Cómo funciona el asincronismo en JavaScript

31

Cómo funciona el tiempo en JavaScript

32

¿Qué pasó con swapi.co?

33

Callbacks

34

Haciendo múltiples requests

35

Manejando el Orden y el Asincronismo en JavaScript

36

Manejo de errores con callbacks

37

Promesas

38

Promesas Encadenadas

39

Múltiples promesas en paralelo

40

Async-await: lo último en asincronismo

Juego de HTML

41

Comenzando el juego

42

Generando una secuencia de números

43

Iluminando la secuencia de colores

44

Obteniendo el input del usuario

45

Agregando la verificación del color elegido

46

Agregando los estados finales del juego

47

Conclusiones del curso

Complementos

48

Diferencias entre var, let y const

49

Memoización: ahorrando cómputo

50

¿Hace cuántos días naciste?

51

Funciones recursivas

52

Entiende los closures de JavaScript

53

Estructuras de datos inmutables

54

Cambiando de contexto al llamar a una función

55

¿Cuándo hace falta poner el punto y coma al final de la línea?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Hace cuántos días naciste?

50/55
Recursos

Con variables de tipo Date, se pueden realizar operaciones de suma y resta similares a las que se realizan con números. El resultado que se obtiene está en milisegundos, por lo que luego hay que hacer algunas operaciones adicionales para llevarlos a días, meses o años según queramos. También aplica para Horas, Minutos, Segundos y Milisegundos.

Aportes 122

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hice una página para saber cuándo acaba el gobierno de Duque 😃

https://edgosw105.github.io/CuentaRegresiva/

Aqui el repositorio: Github

intente hacer mi código un poco más interactivo con el usuario 😃

    <script>
        var año = prompt('Que año naciste?')
        var mes = prompt('que mes naciste?') - 1
        var dia = prompt('que día naciste?')

    let danny = {
        nombre: 'Daniel',
        apellido: 'Cabrera',
        nacimiento: new Date(año, mes, dia)
    }


    const hoy = new Date()

    function diasEntreFechas (fecha1, fecha2){
        const unDia = 1000 * 60 * 60 * 24
        const diferencia = Math.abs(fecha1 - fecha2)
        return Math.floor(diferencia / unDia)

    }
        
    console.log((`hola! naciste hace: ${diasEntreFechas(hoy,danny.nacimiento)} días`))
    var n = diasEntreFechas(hoy,danny.nacimiento) / 365
    var numero = n.toFixed(2)
    console.log(`que siendo un poco mas claros serian: ${numero} años :)`)
    </script>```

Wow, se que no es un aporte importante, pero a la fecha del vídeo tenía casi la misma edad de Sacha, apenas 46 días de diferencia:

Hola, No sé si también les pasó, yo estoy en Linux y coloqué mi fecha de nacimiento:

const nacimiento = new Date(1999, 11, 16);

Y en Google Chrome me decía que era 16 de Diciembre, cuando nací un 16 de Noviembre. No sé realmente por qué pasa, pero leí que el creador de JS, Brendan Eich, usó java.util.Date de JDK 1.0 (por allá en 1995) y lo puso en JS. Esto hace que los meses en vez de ir del 1 al 12 vayan del 0 al 11. Sólo para mencionar como dato histórico. Todo esto es basado en el estándar de tiempo POSIX de C http://linux.die.net/man/3/localtime. O probablemente pasó porque como estoy en Linux, a lo mejor el Browser ingresó a mi S.O. y lo tomó de allí. Una cosa u otra, tengan precaución!

Las fechas en JavaScript son todo un tema… hay veces en el las que JavaScript te puede decir que el día de hoy es mañana, etc, eso pasa cuando no ponemos la zona horaria y demás.

Afortunadamente existen paquetes que nos facilitan mucho todo esto, una de ellas es moment.js, o también pueden ver la documentación completa con todas las funciones para fechas que tenemos disponibles:

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Date

codigo JS clase 42 -->Manejo de fechas preee

function diasEntreFechas(fecha1,fecha2){

    const unDia = 1000*60*60*24
    const diferencia = Math.abs(fecha1- fecha2)

    return Math.floor(diferencia/unDia)

}

const hoy= new Date()
const nacimiento =new Date(1996,2,14)

Feliz Cumpleaños Sacha (un día antes) 😎.

Al declarar variables tipo fecha con new Date nos es posible realizar cálculos entre fechas.

Resumen de la clase:
Manejo de Fechas:

A las fechas podemos restarlas o sumarlas.
Math.abs() nos permite poner cualquier fecha en el primer orden de tal manera que el resultado siempre sea positivo o ‘absoluto’’.
La suma o resta nos da un número expresado en milisegundos.

function diasEntreFechas(fecha1, fecha2) {
	const unDia = 1000 * 60 *60 * 24	//1000ms x 60sec x 60min x 24hs
	const diferencia = Math.abs(fecha1 - fecha2)

	return Math.floor(diferencia / unDia)
}

const hoy = new Date()   // fecha actual por defecto
const nacimiento = new Date(1981, 08, 12)   // el constructor de new Date() recibe año, mes (enero=00) y el día.

diasEntreFechas(hoy, nacimiento)  // == 13638   si divido esta cantidad de días por 365 obtendré la edad en años. 

Bune dia champion… dejo mi aporte, trabjando con .date()…

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Date Management</title>
  <link rel="stylesheet" href="./css/style.css">
  <link rel="preconnect" href="https://fonts.gstatic.com">
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap" rel="stylesheet">
  <!-- <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> -->
</head>

<body>
  <div class="container">
    <!-- <img class="logo" src="/assets/chess-solid.svg" alt="chess"> -->
    <h1>How many days were you born?</h1>
    <form action="" id="box-container">
      <div class="box-container">
        <label>Name</label>
        <input type="text" id="name" placeholder="Full Name" required>
        <label>Year</label>
        <input type="number" id="year" placeholder="1880" required>
        <label>Month</label>
        <input type="number" id="month" placeholder="0 1 2 3 4 5 6 7 8 9 10 11" required>
        <label>Day</label>
        <input type="number" id="day" placeholder="0 - 31" required>
        <input class="submit" type="submit" id="calculate" value="Calculate" >
      </div>
    </form>
    <p class="message" id="message"></p>
  </div>

  <footer>
    <p>Copyright © 2021. <strong style="color:rgb(22, 23, 26)">Bruno Maldonado. </strong>All Rights Reserved.</p>
  </footer>

  <script>
    let calculate = document.getElementById('calculate');
    let message = document.getElementById('message');

    // function daysBetweenDate(date1, date2) {
    //     const oneDay = 1000 * 60 * 60 * 24;
    //     const difference = Math.abs(date1 - date2); //abs significa numeros absolutos si es negativo te da positivo.

    //     return Math.floor(difference / oneDay);
    //   }

    //   const now = new Date();
    //   const birth = new Date(1994, 06, 30);

   class  UI {
    resetForm(){
      document.getElementById('box-container').reset();
    }
   }

    function calculated(e) {
      let day = document.getElementById('day').value;
      let month = document.getElementById('month').value;
      let year = document.getElementById('year').value;

      let users = {
        name: document.getElementById('name').value,
      }

      function daysBetweenDate(date1, date2) {
        const oneDay = 1000 * 60 * 60 * 24;
        const difference = Math.abs(date1 - date2); //abs significa numeros absolutos si es negativo te da positivo.

        return Math.floor(difference / oneDay);
      }

      const now = new Date();
      // const birth = new Date(1994, 06, 30);
      const birth = new Date(year, month, day);

      // console.log(`How are you champion! ${users.name}. Today is: ${now.toDateString()}`);
      // console.log(`${users.name}. You were born: ${birth.toDateString()}`);
      // console.log(`You have ${daysBetweenDate(now, birth)} days since you born `);
      // console.log(`Now, you have ${(daysBetweenDate(now, birth)/365).toFixed(0)} years old`)

      message.innerHTML =
        `How are you champion! ${users.name}. Today is: ${now.toDateString()}. You were born long long time ago ${birth.toDateString()}, You have ${daysBetweenDate(now, birth)} days since you born... <br> Now, you have ${(daysBetweenDate(now, birth)/365).toFixed(0)} years old. `;
  
        const ui = new UI();
        ui.resetForm();

      e.preventDefault();
    }

    //Event listeners
    calculate.addEventListener('click', calculated)
  </script>
</body>

</html>

… css

*{
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body{
  background-image: url(../image/311.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  font-size: 62.5%;
  font-family: 'Poppins', sans-serif;
}

.logo{
  height: 60px;
  width: 60px;
  padding: 1px;
  background-color: rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.349);
}

.container{
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 5rem;
  height: 100vh;
  overflow-y: auto;
}

.container h1{
  font-size: 2.4rem;
  text-align: center;
  margin: 13px 0px 10px 0px;
}
.container p{
  font-size: 2.2rem;
  text-align: justify;
}
.card{
  border: 2px solid rgb(235, 230, 220);
  border-radius: 5px;
  background-color: rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.349);
  padding: 2rem;
}

input[type="text"]{
  border: 2px solid rgba(211, 210, 208, 0.5);
  border-radius: 5px;
  outline: none;
  background-color: inherit;
  color: rgb(14, 14, 14);
  font-size: 1.7rem;
  padding: 4px;
  transition: 0.3s;
}

input[type="text"]:focus{
  border-color: rgb(30, 45, 255);
  box-shadow: 0 0 8px 0 rgb(30, 83, 255);
}

input[type="number"]{
  border: 2px solid rgba(211, 210, 208, 0.5);
  border-radius: 5px;
  outline: none;
  background-color: inherit;
  color: rgb(14, 14, 14);
  font-size: 1.7rem;
  padding: 4px;
  transition: 0.3s;
}

input[type="number"]:focus{
  border-color: rgb(30, 45, 255);
  box-shadow: 0 0 8px 0 rgb(30, 83, 255);
}

.inputWithIcon input[type="text"]{
  padding-left: 10px;
}

.inputWithIcon{
  position: relative;
}

.inputWithIcon i {
  position: absolute;
  right: 0;
  top: 0px;
  padding: 8px 8px ;
  padding-right: 15px;
  color: #aaa;
  font-size: 1.7rem;
  transition: 0,3;
}

.inputWithIcon input[type="text"]:focus{
  color: dodgerblue;
}

label{
  font-size: 1.7rem;
  color: rgb(10, 10, 10);
  font-weight: 600;
  line-height: 3rem;
  text-align: left;
}

.search{
  font-size: 1.7rem;
  padding: 4px;
  transition: 0.3s;
  border: 2px solid #aaa;
  border-radius: 3px;
  outline: none;
  cursor: pointer;
  color: dodgerblue;
}

#card-container{
  font-size: 2rem;
  color: rgb(5, 0, 0);
  margin-top: 10px;
  line-height:2rem;
  max-height: auto;
}

.box-container{
  display: flex;
  flex-direction: column;
  border: 2px solid rgba(235, 230, 220, 0.479);
  border-radius: 10px;
  padding: 15px;
  background-color: rgba(0, 0, 0, 0.2);
  background-color: rgba(255, 255, 255, 0.349);
}

.submit{
  margin-top: 20px;
  padding: 6px;
  border-radius: 5px;
  font-size: 1.7rem;
  border: transparent;
  cursor: pointer;
  background-color: rgb(68, 165, 55);
  color: #fff;
  border: transparent;
  outline: none;
 } 

 .submit::after{
  background-color: rgb(48, 102, 41);
  color: rgba(255, 255, 255, 0.795);
 }

 .message{
   margin-top: 8px;
   padding: 5px;
   max-width: 520px;
 }

 .container p{
   font-size: 1.6rem;
   color: rgb(255, 255, 255);
 }

 footer{
  text-align: center;
  padding: 10px;
  font-size: 1.2rem;
  font-weight: bold;  
}

3. ¿Hace cuántos días naciste?

En esta clase aprendimos a manejar fechas, en este caso les comparto el código de la clase y también otra manera de obtener la fecha utilizando las funciones de date:

function diasEntreFechas(fecha1, fecha2) {
    //Math.abs vuelve positivo el resultado
    const unDia = 1000 * 60 * 60 * 24;
    const diferencia = Math.abs(fecha1 - fecha2);
    //Math.floor redondea hacia abajo
    return Math.floor(diferencia / unDia);
}
const hoy = new Date();
//Para pasar parámetros de fecha, pasamos: año, mes (de 0 al 11)
//y por último día
const nacimiento = new Date(1988,2,11);

//Otra manera de sacar fechas
var date = new Date();
var dateNow = {
	anio: date.getFullYear(),
    //getMonth retorna el mes comenzando en 0 con Enero, por
    //eso le puse +1, para que inicie como Enero = 1.
	mes: date.getMonth() + 1,
	dia: date.getDate()
};

console.log(`Hoy es: ${dateNow.dia}-${dateNow.mes}-${dateNow.anio}`);


¿Cómo será cuando lleve másd e un año ? jajajaja

El manejo de fechas es sin duda uno de los puntos más débiles de JS, por eso se usa la librería moment.js

https://momentjs.com/

Para probarlo rápidamente en la consola sería:

const unDia = 1000*60*60*24
Math.floor((new Date() - new Date(1994,1,23)) / unDia)

muy buena clase, me parece curioso que js arranque los meses desde “0”, mi mes es marzo y coloque 2 😃

intenté hacer mi programa para calcular la diferencia de días desde mi nacimiento hasta la fecha más dinámico tomando el dato de la fecha de nacimiento desde un objeto de la clase Persona y así poder calcular este dato automáticamente de un gran número de personas:

function Persona(nombre, apellido, fecha_nacimiento){
    this.nombre=nombre
    this.apellido=apellido
    this.fecha_nacimiento=fecha_nacimiento

//...

var diego= new Persona('Diego', 'Lerma', new Date(1998,10,25))

}

el problema es que al tomar la variable de esta forma, el tipo de variable se vuelve ‘any’ y al hacer la resta, la diferencia resulta en NaN

¿Hay alguna forma en que pueda convertir un any a Date previo a hacer ese cálculo?
¿O estoy cometiendo errores de lógica al intentar hacer esto?

excelente aprendí hoy hasta que día nací, y cuanto días he vivido jeje

Comparto mi código

let carlos = {
    nombre : 'Carlos',
    apellido: 'Zabala',
    edad: 21,
    nacimiento: new Date(1997, 5, 11)
  }

  haceCuantoNaciste = ({nacimiento}) => {
    let hoy = new Date()
    let restaFecha = Math.abs(nacimiento - hoy)

    let dias = 1000 * 60 * 60 * 24

    restaFecha = Math.round(restaFecha / dias)

    return console.log(`Han pasado ${restaFecha} dias desde tu nacimiento`)
  }

  haceCuantoNaciste(carlos)```

Una manera más simple y clara que la propuesta por sacha

const date = new Date()
const yourBirthday = new Date(1990, 0, 20)

function daysPassed(today, birthday) {
  const days = (today - birthday) / 86400000
  console.log(`${days.toFixed(0)} days have passed since your birth`)
}

daysPassed(date, yourBirthday) // 10696 days have passed since your birth
function dias_entre_fechas(fecha1, fecha2) {
	const un_dia = 1000 * 60 * 60 * 24;
	const diferencia = Math.abs(fecha1 - fecha2);

	return Math.floor(diferencia / un_dia);
}

const hoy = new Date();
const nacimiento = new Date(1998, 06, 26);

dias_entre_fechas();
<code>
function daysBetweenDates(date1, date2) {
  const oneDay = 1000 * 60 * 60 * 24
  const diference = Math.abs(date1 - date2) 
  
  return Math.floor(diference / oneDay)
}

const today = new Date()
const dateOfBirth = new Date(1988, 2, 12)

Con variables de tipo Date, se pueden realizar operaciones de suma y resta similares a las que se realizan con números. El resultado que se obtiene está en milisegundos, por lo que luego hay que hacer algunas operaciones adicionales para llevarlos a días, meses o años según queramos. También aplica para Horas, Minutos, Segundos y Milisegundos.

Vaya, esta clase muy esencial para manejo de fechas en nuestros proyectos.

Que aporte tan bueno, esencial para todo proyecto!

Mi cumpleaños también es ese día!!

Tengo 9971 días de vida.

Estoy a punto de llegar a los 10.000

Para los que les quede la duda de cual es la resta, como a mi, estuve mirando e implicitamente Javascript de esa fecha le aplica el metodo getTime() el cual saca los milisegundos y luego los resta.

Es bueno manejar una nomenclatura para las funciones. En mi caso, yo uso fn

const fnDiasEntreFechas = (fecha1, fecha2) => {
  const diaEnMilisegundos = 1000 * 60 * 60 * 24;
  var diferencia = Math.abs(fecha1 - fecha2);
  return Math.floor( diferencia / diaEnMilisegundos );
}

const fecha1 = new Date();
const fecha2 = new Date(2020, 05, 30);

fnDiasEntreFechas(fecha1, fecha2);
    <script>

function diasEntreFechas(fecha1, fecha2){
	//Cuantos milisegundos hay en un dia
	const unDia = 1000 * 60 * 60 * 24
	//Convierte el numero en positivo, nos dara milisegundos
	const diferencia = Math.abs(fecha1 - fecha2)

	//Para redondear para abajo
	return Math.floor(diferencia / unDia)
}

const hoy = new Date () //Tendra fecha actual por defecto
const nacimiento = new Date(1991, 9 , 16) //Formato es YYYY,M, DD. El mes empieza Enero = 0 y asi

console.log(diasEntreFechas(hoy, nacimiento))

    </script>```

que vacano ese ejercicio ! gracias.

Fechas en Javascript

function daysIntoDates(date1, date2) {
    const ONE_DAY = 1000 * 60 * 60 * 24
    const DIFFERENCE =  Math.abs(date1 - date2)

    return Math.floor(DIFFERENCE / ONE_DAY) 
} 

const TODAY = new Date()
const BIRTH_DATE = new Date(2002, 3, 17)

Para crear una nueva instancia de una Fecha se hace const Fecha = new Date(año, mes, dia) teniendo en cuenta que Javascript cuenta los meses desde el 0 que es Enero.

Mi aporte :

let date = new Date()
let cumpleaños = new Date(1999, 05, 16)

function obtenerDias(fecha2 ,fecha1 = date, año = 365) {
    let dia = 1000 * 60 * 60 * 24

    let diferencia_de_dias = Math.abs(fecha1 - fecha2)

    let calculo = Math.floor(diferencia_de_dias/dia)

    return  console.log(`Han pasado ${calculo} días desde tu nacimiento y tienes ${(calculo/año).toFixed(2)} años`)

}

obtenerDias(cumpleaños)
new Date Arroja el tiempo en milisegundos cuando se usa como numero

MIS APUNTES SOBRE EL MANEJO DE FECHAS

AQUI MAS SOBRE EL OBJETO DATE

//Calcular cuantos dias pasaron desde el dia de mi nacimiento hasta el dia de hoy

const diasEntreFechas = (fecha1, fecha2) =>{

//Metodo Math.abs si un numero es negativo lo pasa a positivo y si el numero
// es positivo l deja como esta


//calculamos cuantos milisegundos hay en un dia
const unDia = 1000 * 60 * 60 * 24;

//esta operacion nos dara un numero en milisegundos
const diferencia = Math.abs(fecha1 - fecha2);

return Math.floor(diferencia / unDia);
}
// new Data() trae la fecha actual por defecto
const hoy = new Date()
// fecha nacimiento pasandosela por parametro
// recibe año - mes - dia
const nacimiento = new Date(2001, 7, 22)```

Cabe destacar que si quieres poner el mes de Enero en date debes comenzar desde 00, no desde 01 ya que este es Febrero

me parecio interesante el manejo de fechas

Muy buena clase.

Date en JS

excelente explicación!!!

buenasc clases

Comparto mi codigo, espero te sea util, relevante 😃

/*
Autor: Daniel Páez
URL Autor:  heysoypaez.com
Tema de la clase: Uso de la fecha en javascript
Descripción: Aprovechando el objeto Date() para hacer calculos conzz
URL código: github.com/heysoypaez
*/

/*PROTOCOLO DE VERIFICACIÓN DE FUNCIONAMIENTO
==================================*/
//Imprimiendo algo en la consola
console.log("inicializando archivo");


/*DECLARACIÓN DE OBJETOS
============================*/		
let daniel = {
		nombre: "Daniel",
		apellido: "Pàez",
		edad: 18,
		nacimiento: new Date(2000,2,15),
		llegaChile: new Date(2017,8,5)

	}

let betsabet = {
		nombre: "Betsabet",
		apellido: "Soto",
		edad: 18,
		nacimiento: new Date(1979,4,10)

	}

/*DECLARACIÓN DE VARIABLES
==================================*/
const hoy  =  new Date();
let texto;


/*DECLARACIÓN DE FUNCIONES
========================================================*/

function diasEntreFechas(texto, fecha1, fecha2) {

	/*DECLARACION DE VARIABLES
	===========================*/
	const unDia = 1000 * 60 * 60 * 24;
	const unAño = unDia * 365;
	//return 86 400 000

	const diferencia = Math.abs(fecha1 - fecha2);
	//podemos restar o sumar las fechas
	//con Math.abs() recibo el valor absoluto

	const diferenciaEnDias = Math.round(diferencia / unDia);
	//esto convertira un tiempo expresado en Mseg a Dias

	const diferenciaEnAños = (diferencia / unAño).toFixed(1);

	let mensaje = `Respecto a ${texto} Hay ${diferenciaEnDias} días de diferencia y ${diferenciaEnAños} años.`;


	/*OUTPUT, MOSTRAR EN PANTALLA
	================================*/

	console.log(mensaje);


}	

diasEntreFechas("mi fecha de nacimiento", hoy, daniel.nacimiento)

// diasEntreFechas("mi fecha de llegada a Chile", hoy, daniel.llegaChile)

// diasEntreFechas("la fecha de nacimiento de mami", hoy, betsabet.nacimiento)



/*EJECUCIÓN DE FUNCIONES Y PROMESAS
========================================0*/

/*=======================================
RENDER EN PANTALLA
Agregando al html datos de la clase
=======================================*/

//Variables
let temaClase = "¿Hace cuanto naciste?";
let titulo = document.getElementById("title")
let contenidoClase = document.getElementById("contenido-clase")

//Variables reasignadas
titulo.innerHTML=  temaClase;
contenidoClase.innerHTML= temaClase;

//contenido de la clase

let apuntes = document.getElementById("apuntes")
let textoContenido = "=> Reduce al minimo el alcance de cada una de las variables a menos que tenga un objetivo concreto" 

apuntes.innerHTML = `${textoContenido}`;

Buena clase !!

Buena clase (Y)

Javascript posiblemente igual a java 😃

No tengo mucho que decir excepto que me parece un buen método para obtener esta diferencia. Particularmente lo habría hecho diferente puesto que no conocía el uso de ‘DATE’.

// Autor   : Cristhian Hernandez
// Programa: Calcular años en dias
// fecha   : 4/06/2019


function diaEntreFechas(f1, f2)
{
  const unDia = 1000 * 60 * 60 * 24;
  const diferencia = Math.abs(f1 - f2);

  return Math.floor(diferencia / unDia);
}

const hoy = new Date();
var dia = parseInt(prompt('¿Dia de nacimiento?'));
var mes = parseInt(prompt('Mes de nacimiento?'));
var year = parseInt(prompt('Año de nacimiento?'));

const nacimiento = new Date(year, mes, dia);

var diasCalculado = diaEntreFechas(hoy, nacimiento);

var edad = diasCalculado / 365;
edad = Math.floor(edad);

console.log(`Mi edad en días son: ${diasCalculado}, que seria ${edad}`);```

Muy buena clase!!

me encanto esto, no se porque pero ahora ya siempre me acuerdo del algoritmo este

Genial!!!

12778 días!!!

feliz cumple atrasado

Buena aclaración esto sirve para los que quieran hacer un reloj con js y su cronómetro

function diasEntreFechas(fecha1, fecha2) {
                const unDia = 1000 * 60 * 60 * 24
                const diferencia = Math.abs(fecha1 - fecha2)
                
                return Math.floor(diferencia / unDia)
            }

            const hoy = new Date();
            const fechaNacimiento = new Date(1998, 06, 23)

No quiero saber cuantos dias pasaron desde que naci 😦

Con fecha de nacimiento introducida por el usuario:
function diasEntreFechas(fecha1, fecha2){
const unDia = 1000 * 60 * 60 * 24
const diferencia = Math.abs(fecha1 - fecha2)

return Math.floor(diferencia / unDia)
}

var anoDeNacimiento = prompt('Introduce tu año de nacimiento: ')
var mesDeNacimiento = prompt('Introduce tu mes de nacimiento: ')
var diaDeNacimiento = prompt('Introduce tu dia de nacimiento: ')

mesDeNacimiento -= 1

const hoy = new Date()
const nacimiento = new Date(anoDeNacimiento, mesDeNacimiento, diaDeNacimiento)

Wow! Bastante importante esta clase, porque es necesario saber el manejo de fechas 😃

9935 😃

Pretty cool, y yo que me hacía bolas con las fechas, hasta ahora veo que es más sencillo trabajar con ellas. Gracias!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Manejo de Fechas en JS</title>
</head>
<body>
    <script>
        function diasEntreFechas (fecha1, fecha2) {
            const unDia = 1000 * 60 * 60 * 24;
            const diferencia = Math.abs(fecha1 - fecha2);
            return Math.floor(diferencia / unDia);
        }
        const hoy = new Date();
        const nacimiento = new Date(1986, 4, 16);
    </script>
</body>
</html>
const diasEntreFechas = (fecha1, fecha2)=>{
    const unDia = 1000 * 60 * 60 * 24;
    const diferencia = Math.abs(fecha1 - fecha2);
    return Math.floor(diferencia / unDia);
}
const hoy = new Date();
const nacimiento = new Date(1990, 1, 28);```

Excelente

necesito aprender esto urgente

Excelente

function diasEntreFechas (fecha1, fecha2) {
			const unDia = 1000 * 60 * 60 * 24
			const diferencia = Math.abs(fecha1 - fecha2)

			return Math.floor(diferencia / unDia)			 
		}

		const hoy = new Date()
		const nacimiento = new Date(1993, 10, 28)

		fecha = diasEntreFechas(hoy, nacimiento)

		console.log(hoy)
		console.log(nacimiento)
		console.log(`dias vividos son ${fecha}`)```

Buena clase, aunque no se mostraron otros métodos como getFullYear, seconds, time, day 😃

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Date

11479 días ¯_(´°°`)_/¯

Como arrow function

const oneDay = 1000 * 60 * 60 * 24;

        let daysBetweenDates = (date1, date2) => {
            const diference = Math.abs(date1 - date2);
            return Math.floor(diference / oneDay);
            
        }
        const today = new Date();
        const bornDate = new Date(2000, 3 , 8);

        console.log(daysBetweenDates(today, bornDate));

13547 días 😃

Para pedir al usuario que ingrese su cumpleaños:

function diasEntreFechas(fecha1, fecha2) {
            const unDia = 1000 * 60 * 60 * 24
            
            const diferencia = Math.abs(fecha1 - fecha2)

            return Math.floor(diferencia / unDia)

        }

        const hoy = new Date()

        const dia = prompt('¿Que día naciste?') 
        const mes = prompt('¿En que mes naciste?') 
        const año = prompt('¿En que año naciste?') 

       
        const nacimiento = new Date(año, mes-1, dia)

        let diasDif = diasEntreFechas (hoy, nacimiento)
        let edad = Math.floor(diasDif / 365)
        
        console.log(`Desde tu cumple hasta hoy hay ${diasDif} días de diferencia y tenés ${edad} años.`)
       ```

Mi aporte

function diferenciaEntreFechas(fecha1,fecha2){
    // Las fechas en JS se manejan en milisegundos, para interpretar la siguiente definicion (UN_DIA)
    // Lo leemos de la siguiente manera.. un segundo tiene mil milisegundos, un minuto tiene 60 segundos, una hora tiene 60 minutos y un dia tiene 24 horas
    const UN_DIA = 1000 * 60 * 60 * 24
    // Utilizamos la funcion ABS para retornar el valor abosulto de la resta entre fechas
    // de esta manera no tenemos problemas con que el resultado pudiera ser negativo
    const diferencia = Math.abs(fecha1-fecha2)
    
    return Math.floor(diferencia / UN_DIA)
}
// La siguiente funcion nos devuelve la fecha del dia de hoy 
const hoy = new Date()
// Pedimos la fecha de nacimiento del usuario
const dia = prompt('¿Qué día naciste?')
const mes = prompt('¿En qué mes naciste?')
const año = prompt('¿En qué año naciste?')
// Con la siguiene constante almacenamos la fecha de nacimiento haciendo uso d la funcion date
// Al mes se le resta 1 ya que javascript al parecer (yo supongo) maneja los meses como si fueran parte de un array
const nacimiento = new Date(año,mes-1,dia)
// almacenando el resultado de la funcion diferencia entre dias  
const diferenciaDias = diferenciaEntreFechas(hoy,nacimiento)
// almacenando y calculando la edad en base a la diferencia entre dias
const edad = Math.floor(diferenciaDias/365)
const meses = Math.floor(diferenciaDias / 30)
// Impresion de los resultados
console.log(`Tienes ${edad} años y han pasado ${diferenciaDias} dias desde tu nacimiento`)

math.abs

Sacha te vez mas grande 🤭

Excelente dato. Muchas gracias. 🙂

Buen truco el de unDia

Tus dias vividos son:

function diasEntreFechas(fecha1, fecha2) {
  const unDia = 1000 * 60 * 60 * 24;
  const diferencia = Math.abs(fecha1 - fecha2);

  return Math.floor(diferencia / unDia);
}

const hoy = new Date();
const nacimiento = new Date(1981, 7, 5);

fecha = diasEntreFechas(hoy, nacimiento);

console.log(hoy);
console.log(nacimiento);
console.log(`Sus dias vividos son:${fecha}`);

Genial.

buen dato

Muy interesante

😮 entonces cuando diga mi mes de nacimiento en vez de decir 05 (Mayo) ahora diré 04 😄 JAJAJ

7877 días!

muy buen dato, en algunos casos, el manejo de fechas es un dolor de cabeza.

        function diasEntreFechas(fecha1, fecha2) {
            const unDia = 1000 * 60 * 60 * 24
            const diferencia = Math.abs(fecha1 - fecha2)

            return Math.floor(diferencia / unDia)
        }

        const hoy = new Date()
        const nacimiento = new Date(1967, 10, 9)

        diasEntreFechas(hoy, nacimiento)

uy comooo

Grandioso

Tengo 8290 días… Cool.

Tengo más de 10,000 días de edad, comienzo a vo,ver e un hechicero de JavaScript.

olvidé cambiar la fecha del profe con la mía y dije KHE como que viví 10 mil días

11333 días tengo ahora mismo, está genial conocer javaScript en profundidad

6559 dias desde que nací :0

10286 días !!!

8mil días jaja me encantó esta clase!

7504 dias !! XD

Genial !

10157 son los días desde mi nacimiento !!

muy interesante el new Date( ) 😃

10340 días 😄

Nice.

function diasEntreFechas(fecha1, fecha2){
const unDia= 1000 * 60 * 60 * 24
const diferencia = Math.abs(fecha1 - fecha2)//retorna la diferencia en milisegundos
return Math.floor(diferencia / unDia)
}
const hoy = new Date()
const nacimiento = new Date(1996, 4, 10)
const años = diasEntreFechas(hoy, nacimiento) / 365
console.log(Jonathan tienes ${años} de vida!)

Respuesta:
Jonathan tienes 24.035616438356165 de vida!