Estoy trabajando en una aplicación JavaScript para convertir una cadena de tiempo Unix de 64 bits en una fecha lógica. Encontré un tutorial bastante bueno en "Geeks for Geeks" y el código funciona bien siempre que haya un valor codificado. Sin embargo, cuando cambio la variable para aceptar un valor de usuario, aparece "fecha no válida".
El valor proporcionado y el valor codificado son los mismos, por lo que creo que estoy haciendo referencia a la entrada o no puedo convertirla a otro tipo de variable. Cualquier explicación es muy apreciada.
Básicamente, este código funciona:
var mSeconds = 1638000000000;Este código devuelve "fecha no válida"
var mSeconds = inputDate;Aunque el valor es el mismo.
var inDate = document.getElementById('inputDate').value; var outDate = document.getElementById('displayDate'); <!-- The below value is hard coded, which works--> var mSeconds = 1638000000000; <!-- The below value is commented out, but returns "invalid date" otherwise --> <!-- var mSeconds = inputDate--> inDate.innerHTML = "Entered Value = " + mSeconds; function convert() { var date = new Date(mSeconds); outDate.innerHTML = date.toString(); } <h1>64 Bit Unix Time Converter</h1> <input type='text' id='inputDate'> <button onClick="convert()">Convert</button> <p id="displayDate"></p> <p>Test Value 1: 1638000000000</p> <p>Test Value 2: 1658000000000</p> <!-- These are just values that I wanted handy to test the application -->Tienes dos problemas en tu código:
La recuperación del valor de entrada debe realizarse en el método de conversión. Como está hecho actualmente, recupera el valor inicial de la entrada y lo usa cada vez en su método de conversión
Debe analizar el valor de entrada como un número entero para llamar al constructor de fecha correcto.
function convert() { var inDate = document.getElementById('inputDate').value; var outDate = document.getElementById('displayDate'); var mSeconds = parseInt(inDate) var date = new Date(mSeconds); outDate.innerHTML = date.toString(); } <h1>64 Bit Unix Time Converter</h1> <input type='text' id='inputDate'> <button onClick="convert()">Convert</button> <p id="displayDate"></p> <p>Test Value 1: 1638000000000</p> <p>Test Value 2: 1658000000000</p> <!-- These are just values that I wanted handy to test the application -->