2011-01-06 29 views
11

¿Cómo puedo convertir segundos en un objeto datetime en javascript.Javascript convertir segundos a un objeto de fecha

Ejemplos:

1,3308313703571

1,6324722385401

Esto es de una serie de puntos y cuando ocurrieron. Entiendo 1.23323 más que segundos, pero no puedo cambiar el valor, siendo sacado de una API.

+0

¿Qué tipo de fecha y hora representan estos números en coma flotante? – deceze

+0

Estos son una serie de segundos, comenzando desde cero. Es solo una serie de puntos representados por cuando ocurrieron. – jhanifen

+1

Creo que el problema que estamos teniendo aquí es que los ejemplos que quiere convertir no tienen sentido. ¿Se supone que es la cantidad de segundos desde un punto específico en el tiempo (1.3 segundos después del 1 de enero de 1970?) –

Respuesta

32

Usted puede tratar de esta manera:

function toDateTime(secs) { 
    var t = new Date(1970, 0, 1); // Epoch 
    t.setSeconds(secs); 
    return t; 
} 

Información sobre epoch date.

1

sus valores de ejemplo tienen un decimal .. que parezca que está intentando convertir segundos 1.something en una fecha ..

comprobar Mientras tanto este ejemplo here en los segundos correctas a la fecha de conversión .. usted podría ver su js fuentes.

+1

Gracias, esto funciona. Aquí está el código: 'var d = new Date(); d.setTime (segundos * 1000); ' – ariscris

-3
/** 
    DateTime 
    ------- 
    Author:  Jamal BOUIZEM 
    Date:  20/02/2015 
    Version: 1.0.0 
*/ 

var DateTime = (function(){ 
    return { 
     instance: function(spec){ 
      var that = { 
       h: spec.h || 0, 
       m: spec.m || 0, 
       s: spec.s || 0 
      }; 

      var d = new Date(); 
      var str = ""; 

      function __init__(h, m, s) 
      { 
       that.h = h; 
       that.m = m; 
       that.s = s; 

       d.setHours(that.h); 
       d.setMinutes(that.m); 
       d.setSeconds(that.s); 
      }; 

      that.get = function(){ 
       d.setHours(that.h); 
       d.setMinutes(that.m); 
       d.setSeconds(that.s); 
       return d; 
      }; 

      that.set = function(h, m, s){ 
       __init__(h, m, s); 
      }; 

      that.convertSecs = function(){ 
       return (that.h * 3600) + (that.m * 60) + that.s; 
      }; 

      that.secsToDate = function(seconds){ 
       var ts = seconds % 60; 
       var tm = (seconds/60) % 60; 
       var th = (seconds/3600) % 60; 
       return DateTime.instance({ h: parseInt(th), m: parseInt(tm), s: parseInt(ts) }); 
      }; 

      that.add = function(d){ 
       return that.secsToDate(that.convertSecs() + d.convertSecs()); 
      }; 

      that.subtract = function(d){ 
       return that.secsToDate(that.convertSecs() - d.convertSecs()); 
      }; 

      __init__(that.h, that.m, that.s); 
      return that; 
     } 
    } 
})(); 
0

La pregunta parece que ya ha sido contestada, pero esto puede ser útil para aquellos que intentan hacer algo similar al método() Time.at de rubí.

function formatDateTime(input){ 
     var epoch = new Date(0); 
     epoch.setSeconds(parseInt(input)); 
     var date = epoch.toISOString(); 
     date = date.replace('T', ' '); 
     return date.split('.')[0].split(' ')[0] + ' ' + epoch.toLocaleTimeString().split(' ')[0]; 
}; 
Cuestiones relacionadas