Pregunta Convierta una marca de tiempo de Unix en hora en JavaScript


Estoy almacenando tiempo en una base de datos MySQL como marca de tiempo Unix y eso se envía a algún código JavaScript. ¿Cómo conseguiría solo el tiempo de eso?

Por ejemplo, en formato HH / MM / SS.


826
2018-05-11 08:23


origen


Respuestas:


// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp*1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();

// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

Para obtener más información sobre el objeto Date, consulte MDN o el Especificación ECMAScript 5.


1296
2018-05-11 08:28



function timeConverter(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var year = a.getFullYear();
  var month = months[a.getMonth()];
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}

230
2018-05-21 00:44



JavaScript funciona en milisegundos, por lo que primero deberá convertir la marca de tiempo de UNIX de segundos a milisegundos.

var date = new Date(UNIX_Timestamp * 1000);
// Manipulate JavaScript Date object here...

136
2018-05-11 08:31



Soy parcial con Jacob Wright Date.format() biblioteca, que implementa el formato de fecha de JavaScript en el estilo de PHP date() función.

new Date(unix_timestamp * 1000).format('h:i:s')

69
2017-10-11 21:02



Aquí está la solución más corta de una línea para formatear segundos como hh:mm:ss:

/**
 * Convert seconds to time string (hh:mm:ss).
 *
 * @param Number s
 *
 * @return String
 */
function time(s) {
    return new Date(s * 1e3).toISOString().slice(-13, -5);
}

console.log( time(12345) );  // "03:25:45"

Método Date.prototype.toISOString() regresa el tiempo en   simplificado extendido ISO 8601 formato, que es siempre 24 o 27 caracteres de largo (es decir YYYY-MM-DDTHH:mm:ss.sssZ o    ±YYYYYY-MM-DDTHH:mm:ss.sssZ respectivamente). La zona horaria es siempre   cero desplazamiento UTC.

N.B .: esta solución no requiere bibliotecas de terceros y es compatible con todos los navegadores modernos y motores de JavaScript.


37
2018-03-09 11:37



Pensaría en usar una biblioteca como momentjs.com, eso hace que esto sea realmente simple:

Basado en una marca de tiempo de Unix:

var timestamp = moment.unix(1293683278);
console.log( timestamp.format("HH/mm/ss") );

Basado en una cadena de fecha MySQL:

var now = moment("2010-10-10 12:03:15");
console.log( now.format("HH/mm/ss") );

23
2017-11-11 10:30



La marca de tiempo de UNIX es el número de segundos desde las 00:00:00 UTC del 1 de enero de 1970 (según Wikipedia)

Argumento del objeto Date en Javascript es el número de milisegundos desde las 00:00:00 UTC del 1 de enero de 1970 (según Documentación de W3Schools Javascript)

Ver el código a continuación, por ejemplo:

    function tm(unix_tm) {
        var dt = new Date(unix_tm*1000);
        document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>');

    }

tm(60);
tm(86400);

da:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time)
1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)

19
2018-05-11 08:38



Utilizando Moment.js, puedes obtener una fecha y hora como esta:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

Y solo puedes obtener tiempo usando esto:

var timeString = moment(1439198499).format("HH:mm:ss");

16
2017-08-10 11:48



El problema con las soluciones antes mencionadas es que si la hora, minuto o segundo tiene solo un dígito (es decir, 0-9), el tiempo sería incorrecto, p. podría ser 2: 3: 9, pero debería ser 02:03:09.

De acuerdo a esta página parece ser una mejor solución para usar el método "toLocaleTimeString" de Date.


14
2017-11-01 19:11



Otra forma, desde una ISO 8601 fecha.

var timestamp = 1293683278;
var date = new Date(timestamp*1000);
var iso = date.toISOString().match(/(\d{2}:\d{2}:\d{2})/)
alert(iso[1]);

13
2018-05-10 14:24



En el momento debes usar la marca de tiempo de Unix:

var dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");

12
2018-06-24 09:26