web-dev-qa-db-ja.com

人間が読める形式へのタイムスタンプ

まあ私はjavascriptを使用してUnixタイムスタンプから人間表現に変換するときに奇妙な問題があります

タイムスタンプはこちら

1301090400

これは私のjavascriptです

var date = new Date(timestamp * 1000);
var year    = date.getFullYear();
var month   = date.getMonth();
var day     = date.getDay();
var hour    = date.getHours();
var minute  = date.getMinutes();
var seconds = date.getSeconds();  

結果は2011 2、25 22 00 00になると予想しました。しかし、2011、2、6、0、0、0です。

78
georgevich

getDay()は、曜日を返します。日付を取得するには、date.getDate()を使用します。 getMonth()は月を取得しますが、月はゼロに基づいているため、getMonth()+1を使用すると適切な月が得られます。ここでは時間は23(GMT + 1)ですが、ここでは時間の値は問題ないようです。ユニバーサル値が必要な場合は、UTCをメソッドに追加します(例:date.getUTCFullYear()date.getUTCHours()

var timestamp = 1301090400,
date = new Date(timestamp * 1000),
datevalues = [
   date.getFullYear(),
   date.getMonth()+1,
   date.getDate(),
   date.getHours(),
   date.getMinutes(),
   date.getSeconds(),
];
alert(datevalues); //=> [2011, 3, 25, 23, 0, 0]
89
KooiInc
var newDate = new Date();
newDate.setTime(unixtime*1000);
dateString = newDate.toUTCString();

ここで、unixtimeは、SQLデータベースによって返される時間です。 fiddle が役立ちます。

たとえば、現在の時間に使用する場合:

document.write( new Date().toUTCString() );
39
Shouvik

ここに0が埋め込まれたkooilncの答えがあります

function getFormattedDate() {
    var date = new Date();

    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var min = date.getMinutes();
    var sec = date.getSeconds();

    month = (month < 10 ? "0" : "") + month;
    day = (day < 10 ? "0" : "") + day;
    hour = (hour < 10 ? "0" : "") + hour;
    min = (min < 10 ? "0" : "") + min;
    sec = (sec < 10 ? "0" : "") + sec;

    var str = date.getFullYear() + "-" + month + "-" + day + "_" +  hour + ":" + min + ":" + sec;

    /*alert(str);*/

    return str;
}
7
golakers

時間、分、秒はオペレーティングシステムのタイムゾーンに依存します。 GMT(UST)では22:00:00ですが、異なるタイムゾーンでは何でもかまいません。そのため、タイムゾーンオフセットを時間に追加してGMT日付を作成します。

var d = new Date();
date = new Date(timestamp*1000 + d.getTimezoneOffset() * 60000)
7
Hossein

文書化されているDate.prototype.toLocaleTimeString()を使用します ここ

uRLのロケール例en-USに注意してください。

4
struggle4life