2012-02-28 21 views
10

Tengo una marca de tiempo de Unix, por ejemplo, 1313564400000.00. ¿Cómo lo convierto en objeto Date y obtengo mes/año/día en consecuencia? El siguiente no funcionará:javascript: obtener mes/año/día de la marca de tiempo de Unix

function getdhm(timestamp) { 
     var date = Date.parse(timestamp); 
     var month = date.getMonth(); 
     var day = date.getDay(); 
     var year = date.getYear(); 

     var formattedTime = month + '/' + day + '/' + year; 
     return formattedTime; 

    } 
+0

¿Tiene algún problema con su código? ¿Y si si, que? ¿Hay algo que la [documentación de MDN] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) no pueda ayudarlo? –

+0

El resultado del análisis es date = NaN – Yang

+0

Bueno, la documentación para 'parse' dice: * El método parse toma una cadena de fecha (como" 25 de diciembre de 1995 ") y devuelve el número de milisegundos desde el 1 de enero de 1970, 00 : 00: 00 UTC. *, Entonces ese no es el método correcto para usar. Probablemente quieras 'nueva Fecha (milisegundos)'. –

Respuesta

14
var date = new Date(1313564400000); 
var month = date.getMonth(); 

etc.

Esto será en la hora local del navegador del usuario.

+0

¿Has probado eso? Esto devuelve NaN también. – Yang

+0

Lo intenté en Chrome. –

+0

@Yang: No, no: http://jsfiddle.net/tVWkP/ –

6

En lugar de utilizar parse, que se utiliza para convertir una fecha cadena a un Date, sólo tiene que pasar en el Date constructor:

var date = new Date(timestamp); 

Asegúrese su fecha y hora es Number, por supuesto.

+0

¡Tienes razón, Jacob! – Yang

+0

Excelente. Justo lo que momentáneamente estaba perplejo. – gdgr

Cuestiones relacionadas