¿Cómo comprobar si un objeto es una fecha?

Método 1: usar el operador instanceof: el operador instanceof verifica si la propiedad de prototipo de un constructor aparece en algún lugar de la string de prototipos de un objeto. En este caso, se utiliza para comprobar si el objeto es una instancia del objeto Fecha o no. Un valor verdadero significa que coincide con el objeto especificado.
La validez de la fecha en el objeto Date se puede comprobar con la función !isNan(). Devuelve verdadero si la fecha no es inválida.

Sintaxis:

object instanceof Date

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>
        How to check an object is
        date in JavaScript?
    </title>
</head>
  
<body>
    <h1 style="color: green">
        GeeksforGeeks
    </h1>
      
    <b>
        How to check if a object is
        date in JavaScript?
    </b>
      
    <p>
        Click on the button to check
        if an object is a date
    </p>
      
    <p>
        Output for string: 
        <span class="outputString"></span>
    </p>
      
    <p>
        Output for number: 
        <span class="outputNumber"></span>
    </p>
      
    <p>
        Output for date: 
        <span class="outputDate"></span>
    </p>
  
    <button onclick="checkDate()">
        Click here
    </button>
      
    <script type="text/javascript">
  
        function checkDate() {
            let str = new String('This is a string');
            let num = new Number(25);
            let date = new Date('13-January-19');
  
            ans = (str instanceof Date) && !isNaN(str);
            document.querySelector('.outputString').textContent = ans;
              
            ans = (num instanceof Date) && !isNaN(num);
            document.querySelector('.outputNumber').textContent = ans;
              
            ans = (date instanceof Date) && !isNaN(date);
            document.querySelector('.outputDate').textContent = ans;
        }
    </script>
</body>
</html>                    

Producción:

  • Antes de hacer clic en el botón:
    instanceof-before
  • Después de hacer clic en el botón:
    instanceof-after

Método 2: Usar el método Object.prototype.toString.call(): El método Object.prototype.toString.call() se usa para devolver la propiedad de clase interna de un objeto en una string con el formato ‘[Tipo de objeto]’. Esta propiedad se asigna internamente durante la creación de cualquier objeto. Esta propiedad se puede verificar para el objeto Fecha comparándolo con la string ‘[objeto Fecha]’. Un valor verdadero significa que coincide con el objeto especificado.
La validez de la fecha en el objeto Date se puede comprobar con la función !isNan(). Devuelve verdadero si la fecha no es inválida.

Sintaxis:

Object.prototype.toString.call(object)

Ejemplo:

<!DOCTYPE html>
<html>
      
<head>
    <title>
        How to check if a object
        is date in JavaScript?
    </title>
</head>
  
<body>
    <h1 style="color: green">
        GeeksforGeeks
    </h1>
      
    <b>
        How to check if a object
        is date in JavaScript?
    </b>
      
    <p>
        Click on the button to check
        if an object is a date
    </p>
      
    <p>
        Output for string: 
        <span class="outputString"></span>
    </p>
      
    <p>
        Output for number: 
        <span class="outputNumber"></span>
    </p>
      
    <p>
        Output for date: 
        <span class="outputDate"></span>
    </p>
  
    <button onclick="checkDate()">
        Click here
    </button>
      
    <script type="text/javascript">
  
        function checkDate() {
            let str = new String('This is a string');
            let num = new Number(25);
            let date = new Date('13-January-19');
  
            ans = Object.prototype.toString.call(str)
                    === '[object Date]' && !isNaN(str);
            document.querySelector('.outputString').textContent
                    = ans;
                      
            ans = Object.prototype.toString.call(num)
                    === '[object Date]' && !isNaN(num);
            document.querySelector('.outputNumber').textContent
                    = ans;
                      
            ans = Object.prototype.toString.call(date)
                    === '[object Date]' && !isNaN(date);
            document.querySelector('.outputDate').textContent
                    = ans;
        }
    </script>
</body>
  
</html>                    

Producción:

  • Antes de hacer clic en el botón:
    toString-before
  • Después de hacer clic en el botón:
    toString-after

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *