Muunna Unix-ajastinleima ajaksi JavaScriptissä

Tallennan ajan MySQL-tietokantaan Unix-ajastinleimana, ja se lähetetään JavaScript-koodiin. Miten saisin siitä vain ajan?

Esimerkiksi muodossa HH/MM/SS.

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

Lisätietoja Date-oliosta on MDN tai ECMAScript 5 -spesifikaatiossa.

Kommentit (17)

JavaScript toimii millisekunneissa, joten sinun on ensin muunnettava UNIX-aikaleima sekunneista millisekunneiksi.

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

UNIX-ajastinleima on sekuntien määrä 1. tammikuuta 1970 kello 00:00:00 UTC:stä (Wikipedian mukaan).

Javascriptin Date-olion argumentti on miliseconds tammikuun 1. päivän 1970 kello 00:00:00 UTC:n jälkeen (W3Schools Javascript documentation mukaan).

Katso esimerkki alla olevasta koodista:

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

antaa:

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)
Kommentit (0)