Cómo convertir una cadena a una fecha en JavaScript, con ejemplos

Estos son algunos métodos fáciles de entender para convertir cadenas en objetos de fecha en el lenguaje de programación JavaScript.

¿Buscas comparar fechas en JavaScript? Descubre cómo aquí.

La manera difícil:usar JavaScript Vanilla

JavaScript contiene funciones integradas para analizar una fecha de una cadena, pero está muy limitada. Así que aquí está en acción:

var myString = '01 Jan 1970 00:00:00 GMT';

var myDate = new Date(Date.parse(myString));

¿Qué está pasando aquí? Se define una cadena que contiene una fecha. Una nueva fecha Luego, el objeto se define utilizando el resultado de la función Date.parse, que toma la cadena de fecha y la convierte a la hora de Unix.

Es un poco difícil de manejar y, lo peor de todo, solo funciona cuando la cadena de fecha se adhiere a un formato específico.

Puede encontrar más información sobre este método y los formatos de fecha admitidos en la documentación para desarrolladores de Mozilla, pero hay una mejor manera.

La forma inteligente:usar Moment.js

Momento.js es la herramienta definitiva para manejar fechas y horas en JavaScript. Puede convertir y analizar fechas de cadenas, cambiar zonas horarias, calcular diferencias horarias, sumar y restar horas; hace todo lo que necesita hacer con horas y fechas y es fácil de usar. Consíguelo en:

https://momentjs.com/

Moment.js está completamente documentado; no volveré a interpretar nada aquí. Está bien escrito, es fácil de entender y se mantiene actualizado con las funciones más recientes del paquete:

https://momentjs.com/docs/

Proporcionaré un ejemplo rápido sobre cómo analizar una fecha de una cadena, ya que es por eso que estamos aquí, pero la documentación completa contiene una lista completa de herramientas disponibles para analizar fechas:

https://momentjs.com/docs/#/parsing/

Ejemplo

Primero, deberá incluir Moment.js en su HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

Ahora Moment.js está listo para funcionar:aquí está el JavaScript para convertir una cadena en una fecha:

var myString = '12/11/2021';

moment(myString, 'DD/MM/YYYY');

Es así de fácil:simplemente llame a moment() y pase la cadena y el formato en el que se encuentra su fecha, y hará el resto.