yyyy month formato fecha day cambiar javascript jquery mysql datetime

month - Convertir el sello MySql DateTime en el formato de fecha de JavaScript



javascript get day of month (12)

¿Por qué no hacer esto?

var d = new Date.parseDate( "2000-09-10 00:00:00", ''Y-m-d H:i:s'' );

¿Alguien sabe cómo puedo tomar un valor de tipo de datos datetime MySQL, como YYYY-MM-DD HH:MM:SS y analizarlo o convertirlo para trabajar en la función Date() JavaScript, por ejemplo: - Date (''YYYY , MM, DD, HH, MM, SS);

¡Gracias!


Algunas de las respuestas dadas aquí son demasiado complicadas o simplemente no funcionarán (al menos, no en todos los navegadores). Si das un paso atrás, puedes ver que la marca de tiempo de MySQL tiene cada componente de tiempo en el mismo orden que los argumentos requeridos por el constructor de Date() .

Todo lo que se necesita es una división muy simple en la cadena:

// Split timestamp into [ Y, M, D, h, m, s ] var t = "2010-06-09 13:12:01".split(/[- :]/); // Apply each element to the Date function var d = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5])); console.log(d); // -> Wed Jun 09 2010 14:12:01 GMT+0100 (BST)

Advertencia justa: esto supone que su servidor MySQL está produciendo fechas UTC (que es el valor predeterminado, y se recomienda si no hay un componente de zona horaria de la cadena).


Creo que pude haber encontrado una manera más simple, que nadie mencionó.

Una columna MySQL DATETIME se puede convertir a una marca de tiempo Unix a través de:

SELECT unix_timestamp(my_datetime_column) as stamp ...

Podemos crear un nuevo objeto Date de JavaScript utilizando 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:

SELECT unix_timestamp(my_datetime_column) * 1000 as stamp ...

El valor resultante se puede usar directamente para crear una instancia de un objeto Date de Javascript correcto:

var myDate = new Date(<?=$row[''stamp'']?>);

Espero que esto ayude.


De la respuesta de Andy , para AngularJS - Filtro

angular .module(''utils'', []) .filter(''mysqlToJS'', function () { return function (mysqlStr) { var t, result = null; if (typeof mysqlStr === ''string'') { t = mysqlStr.split(/[- :]/); //when t[3], t[4] and t[5] are missing they defaults to zero result = new Date(t[0], t[1] - 1, t[2], t[3] || 0, t[4] || 0, t[5] || 0); } return result; }; });


Las versiones recientes de JavaScript leerán una fecha formateada ISO8601, por lo que todo lo que tiene que hacer es cambiar el espacio a una ''T'', haciendo algo como uno de los siguientes:

#MySQL select date_format(my_date_column,''%Y-%m-%dT%T'') from my_table; #PHP $php_date_str = substr($mysql_date_str,0,10).''T''.substr($mysql_date_str,11,8); //JavaScript js_date_str = mysql_date_str.substr(0,10)+''T''+mysql_date_str.substr(11,8);


Para agregar a la excelente respuesta de Andy E, una función de uso común podría ser:

Date.createFromMysql = function(mysql_string) { var t, result = null; if( typeof mysql_string === ''string'' ) { t = mysql_string.split(/[- :]/); //when t[3], t[4] and t[5] are missing they defaults to zero result = new Date(t[0], t[1] - 1, t[2], t[3] || 0, t[4] || 0, t[5] || 0); } return result; }

De esta manera, se da una fecha / hora de MySQL en el formato "YYYY-MM-DD HH:MM:SS" o incluso la forma abreviada (única fecha) "YYYY-MM-DD" que puede hacer:

var d1 = Date.createFromMysql("2011-02-20"); var d2 = Date.createFromMysql("2011-02-20 17:16:00"); alert("d1 year = " + d1.getFullYear());


Para agregar aún más a la solución de Marco. Prototipé directamente al objeto String.

String.prototype.mysqlToDate = String.prototype.mysqlToDate || function() { var t = this.split(/[- :]/); return new Date(t[0], t[1]-1, t[2], t[3]||0, t[4]||0, t[5]||0); };

De esta forma puedes ir directamente a:

var mySqlTimestamp = "2011-02-20 17:16:00"; var pickupDate = mySqlTimestamp.mysqlToDate();


Primero puede dar el objeto Date (clase) de JavaScript al nuevo método ''fromYMD ()'' para convertir el formato de fecha YMD de MySQL en formato de JavaScript dividiendo el formato YMD en componentes y usando estos componentes de fecha:

Date.prototype.fromYMD=function(ymd) { var t=ymd.split(/[- :]/); //split into components return new Date(t[0],t[1]-1,t[2],t[3]||0,t[4]||0,t[5]||0); };

Ahora puedes definir tu propio objeto (función en el mundo de JavaScript):

function DateFromYMD(ymd) { return (new Date()).fromYMD(ymd); }

y ahora puedes simplemente crear la fecha desde el formato de fecha de MySQL;

var d=new DateFromYMD(''2016-07-24'');


Puede usar la marca de tiempo de unix para dirigir:

SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;

Luego, ingrese epoch_time en JavaScript, y es una simple cuestión de:

var myDate = new Date(epoch_time * 1000);

La multiplicación por 1000 es porque JavaScript tarda milisegundos, y UNIX_TIMESTAMP da segundos.


Un trazador de líneas para los navegadores modernos (IE10 +):

var d = new Date(Date.parse("2010-06-09 13:12:01")); alert(d); // Wed Jun 09 2010 13:12:01 GMT+0100 (GMT Daylight Time)

Y solo por diversión, aquí hay una línea que funcionará en navegadores antiguos (ahora corregidos):

new (Function.prototype.bind.apply(Date, [null].concat("2010-06-09 13:12:01".split(/[/s:-]/)).map(function(v,i){return i==2?--v:v}) )); alert(d); // Wed Jun 09 2010 13:12:01 GMT+0100 (GMT Daylight Time)


Una búsqueda rápida en google proporcionó esto:

function mysqlTimeStampToDate(timestamp) { //function parses mysql datetime string and returns javascript Date object //input has to be in this format: 2007-06-05 15:26:02 var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/; var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split('' ''); return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]); }

Fuente: http://snippets.dzone.com/posts/show/4132


var a=dateString.split(" "); var b=a[0].split("-"); var c=a[1].split(":"); var date = new Date(b[0],(b[1]-1),b[2],b[0],c[1],c[2]);