¿Alguien sabe cómo puedo tomar un datetime
valor de tipo de datos MySQL , como YYYY-MM-DD HH:MM:SS
analizarlo o convertirlo para que funcione en la Date()
función de JavaScript , por ejemplo: - Fecha ('AAAA, MM, DD, HH, MM, SS);
¡Gracias!
¿Alguien sabe cómo puedo tomar un datetime
valor de tipo de datos MySQL , como YYYY-MM-DD HH:MM:SS
analizarlo o convertirlo para que funcione en la Date()
función de JavaScript , por ejemplo: - Fecha ('AAAA, MM, DD, HH, MM, SS);
¡Gracias!
Respuestas:
Algunas de las respuestas dadas aquí son demasiado complicadas o simplemente no funcionarán (al menos, no en todos los navegadores). Si retrocede, puede ver que la marca de tiempo de MySQL tiene cada componente de tiempo en el mismo orden que los argumentos requeridos por el
Date()
constructor.Todo lo que se necesita es una división muy simple en la cadena:
Advertencia justa: esto supone que su servidor MySQL está emitiendo fechas UTC (que es el valor predeterminado y se recomienda si no hay un componente de zona horaria de la cadena).
fuente
var d = new Date("2010-06-09 13:12:01");
. Aunque es interesante, Chrome no tiene ningún problema.new Date(Date.UTC(...))
es mejor, pero eso supone que mysql usa utc ... de cualquier manera, esto debe ser considerado antes de esto se puede considerar una respuesta correcta.Para agregar a la excelente respuesta de Andy E, una función de uso común podría ser:
De esta manera, dada una fecha / hora MySQL en el formulario
"YYYY-MM-DD HH:MM:SS"
o incluso en el formulario corto (solo fecha)"YYYY-MM-DD"
, puede hacer:fuente
new Date(Date.UTC(...))
otra manera la respuesta es incorrecta por hasta 24 horas ...Creo que pude haber encontrado una manera más simple, que nadie mencionó.
Una columna MySQL DATETIME se puede convertir en una marca de tiempo de Unix a través de:
Podemos hacer un nuevo objeto JavaScript Date usando el constructor que requiere milisegundos desde la época. La función unix_timestamp devuelve segundos desde la época, por lo que debemos multiplicar por 1000:
El valor resultante se puede usar directamente para crear una instancia de un objeto de fecha Javascript correcto:
Espero que esto ayude.
fuente
One liner para navegadores modernos (IE10 +):
Y solo por diversión, aquí hay una línea que funcionará en navegadores antiguos (ahora corregido):
fuente
Las versiones recientes de JavaScript leerán una fecha con formato ISO8601, por lo que todo lo que tiene que hacer es cambiar el espacio a una 'T', haciendo algo como lo siguiente:
fuente
Para agregar aún más a la solución de Marco. Realicé un prototipo directamente al objeto String.
De esta manera puede ir directamente a:
fuente
Hay una manera más simple, cadena de marca de tiempo sql:
El formato más cercano a la indicación de fecha y hora para recibir Fecha () es el siguiente, por lo que debe reemplazar el espacio en blanco para "T":
Luego, cree el objeto de fecha:
El resultado sería el objeto de fecha:
fuente
De la respuesta de Andy , para AngularJS - Filtro
fuente
fuente
Primero, puede darle al objeto Fecha (clase) de JavaScript el nuevo método 'fromYMD ()' para convertir el formato de fecha YMD de MySQL en formato JavaScript dividiendo el formato YMD en componentes y utilizando estos componentes de fecha:
Ahora puede definir su propio objeto (funcion en el mundo JavaScript):
y ahora simplemente puede crear la fecha desde el formato de fecha MySQL;
fuente
Puede usar la marca de tiempo de Unix para dirigir:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Luego obtenga el epoch_time en JavaScript, y es una simple cuestión de:
var myDate = new Date(epoch_time * 1000);
La multiplicación por 1000 se debe a que JavaScript tarda milisegundos y UNIX_TIMESTAMP da segundos.
fuente
Una búsqueda rápida en google proporcionó esto:
Fuente: http://snippets.dzone.com/posts/show/4132
fuente
¿Por qué no hacer esto?
fuente