2011-07-15 18 views

Respuesta

16
var match = '2011-07-15 13:18:52'.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/) 
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6]) 
// big gotcha -------------------------^^^ 
// month must be between 0 and 11, not 1 and 12 
console.log(date); 
console.log(date.getTime()/1000); 
+0

amigo estoy obteniendo la marca de tiempo pero no es la correcta. cuando doy '2011-07-15 14:54:12' obtengo la marca de tiempo como '1313434452'. Pero cuando miro esto usando 'http://www.onlineconversion.com/unix_time.htm', muestra la fecha de conversión de fecha y hora en lunes, 15 de agosto de 2011 07:48:52 GMT, lo cual es incorrecto. –

+1

Vaya. He actualizado mi respuesta (ver el gotcha). –

+0

Gracias amigo ... :-) –

-3

Esto devuelve el número de milisegundos desde el 1 de enero de 1970: Date.parse('2011-07-15 10:05:20')

Sólo se divide por 1.000 para llegar segundos en lugar de milisegundos ..

+0

date = new Date.parse ('2011-07-15 10:05:20')/100 es esto lo que dice ... Recibo el error NaN –

+0

'console.log (Date.parse ('2011 -07-15 10:05:20 ')); 'es' NaN', [este no es un formato de entrada reconocido] (https://developer.mozilla.org/es/JavaScript/Reference/Global_Objects/Date/parse) –

+0

Debe variar de un navegador a otro, entonces. Probado en Chrome, sin problemas (http://jsfiddle.net/nslr/v2xQ6/) –

1

Meses Puesta a 0, a diferencia de los días! Así que esto va a funcionar perfectamente (tested)

function dateToUnix(year, month, day, hour, minute, second) { 
    return ((new Date(Date.UTC(year, month - 1, day, hour, minute, second))).getTime()/1000.0); 
} 
+0

Muchas gracias :-) –

6

Usted ha aceptado una respuesta, pero una expresión regular mucho más simple puede ser usado cuando:

function stringToDate(s) { 
    s = s.split(/[-: ]/); 
    return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]); 
} 

alert(stringToDate('2011-7-15 20:46:3')); 

Por supuesto, la cadena de entrada debe ser el formato correcto.

12

siguiente código trabajará para el formato YYYY-MM-DD hh:mm:ss:

function parse(dateAsString) { 
    return new Date(dateAsString.replace(/-/g, '/')) 
} 

Este código convierte YYYY-MM-DD hh:mm:ss a YYYY/MM/DD hh:mm:ss que es fácilmente analizada por Date constructor.

+0

Esta es la mejor respuesta. ¡Gracias! –

Cuestiones relacionadas