Question Convertir un horodatage Unix en JavaScript


Je stocke du temps dans une base de données MySQL comme un horodatage Unix et qui est envoyé à du code JavaScript. Comment pourrais-je obtenir juste le temps de sortir?

Par exemple, en format HH / MM / SS.


826
2018-05-11 08:23


origine


Réponses:


// 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);

Pour plus d'informations sur l'objet Date, veuillez vous reporter à MDN ou la Spécification 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 fonctionne en millisecondes, vous devez donc d'abord convertir l'horodatage UNIX en secondes et en millisecondes.

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

136
2018-05-11 08:31



Je suis partial à Jacob Wright Date.format() bibliothèque, qui implémente la mise en forme de la date JavaScript dans le style de PHP date() fonction.

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

69
2017-10-11 21:02



Voici la solution la plus courte en un seul format pour formater les secondes 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éthode Date.prototype.toISOString() retourne le temps dans   extension simplifiée ISO 8601 format, qui est toujours 24 ou 27 caractères (c.-à-d. YYYY-MM-DDTHH:mm:ss.sssZ ou    ±YYYYYY-MM-DDTHH:mm:ss.sssZ respectivement). Le fuseau horaire est toujours   décalage zéro UTC.

NB: Cette solution ne nécessite aucune bibliothèque tierce et est supportée par tous les navigateurs modernes et les moteurs JavaScript.


37
2018-03-09 11:37



Je penserais à utiliser une bibliothèque comme momentjs.com, cela rend vraiment simple:

Basé sur un horodatage Unix:

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

Basé sur une chaîne de date MySQL:

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

23
2017-11-11 10:30



L'horodatage UNIX est le nombre de secondes depuis 00:00:00 UTC le 1er janvier 1970 (selon Wikipédia).

Argument de l'objet Date en Javascript est le nombre de milisecondes depuis 00:00:00 UTC le 1er janvier 1970 (selon Documentation Javascript de W3Schools).

Voir le code ci-dessous par exemple:

    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);

donne:

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



En utilisant Moment.js, vous pouvez obtenir l'heure et la date comme ceci:

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

Et vous pouvez obtenir seulement du temps en utilisant ceci:

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

16
2017-08-10 11:48