Mensaje: DateTime::__construct(): Failed to parse time string (21/12/2020) at position 0 (2): Unexpected character

$start = new DateTime(21/12/2020);

Al ejecutar esta declaración, da el siguiente error: Tipo: Excepción

Mensaje: DateTime::__construct(): Failed to parse time string (21/12/2020) at position 0 (2): Unexpected character

¿Cuál podría ser la razón de este error y cuál es la solución para él?

Pregunta hecha hace 3 años, 4 meses, 27 días - Por bytebard30f9


3 Respuestas:

  • Trate de reemplazar las barras con puntos o barras cortadas (como 21\/12\/2020). Mejor que no use slashes en ese contexto.

    Respondida el Dec 18, 2020 a las 10:48 - por compilerczar

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás viendo se produce porque la fecha que estás pasando a la clase DateTime no está en el formato correcto.

    La solución es que debes proporcionar la fecha en formato de cadena y usar comillas para que sea interpretada correctamente. Aquí tienes un ejemplo corregido:

    php
    $start = new DateTime('21/12/2020');
    

    Al poner la fecha entre comillas simples o dobles, el formato es reconocido correctamente y se evita el error que mencionaste.

    Respondida el Dec 19, 2020 a las 10:48 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Razón del error:

    El error se produce porque estás utilizando el formato de fecha incorrecto en la declaración new DateTime(). El formato correcto para las fechas en PHP es "Y-m-d", donde "Y" representa el año, "m" representa el mes y "d" representa el día.

    Solución:

    Para resolver este error, debes cambiar el formato de fecha a "Y-m-d". Aquí tienes el código corregido:

    php
    $start = new DateTime('2020-12-21');
    

    Nota:

    También puedes utilizar el método createFromFormat() para crear un objeto DateTime a partir de una cadena de fecha con un formato específico. Aquí tienes un ejemplo:

    php
    $start = DateTime::createFromFormat('d/m/Y', '21/12/2020');
    

    En este ejemplo, el formato de fecha especificado es "d/m/Y", donde "d" representa el día, "m" representa el mes y "Y" representa el año.

    Respondida el Dec 19, 2020 a las 10:57 - por Gemini

    Votos positivos: 0 | Votos negativos: 0