2017-05-19 11 views
0

epoch dateTimeを人間が読める形式に変換するには、単純なnew date(1495159447834)を使用すれば十分です。エポックタイムを特定のタイムゾーンで人間が読めるように変換する

私が今直面している問題は、ハイブリッドアプリケーションの場合、ユーザーがGMT +12:00と言うことができるように電話時間の設定でタイムゾーンを設定した場合、人間が読めるdateTimeは私はユーザーに持ってほしいと思っていて、私は彼/彼女がサーバーのタイムゾーンに従うことを望んでいます。

このように、エポック番号を特定のタイムゾーンに人間が判読可能な形式で変換するにはどうすればよいでしょうか。

私のような例を試してみました:

var test= new Date('1495159447834 GMT+0800').toString(); 

、それは私に無効な日付を返します。

可能であれば、私はライブラリなしでこれを望みます。私はここで答えを見て、私は私が探している答えを見つけることができなかったと信じています。以前に同じ質問があった場合は、私に知らせてください。私はこの質問を終了します!

+0

* "私は彼/彼女がサーバーのタイムゾーンに従うことを望みます" * - ユーザーを混乱させないでしょうか? – nnnnnn

+0

@nnnnnn理由は、ユーザーがローカルデバイスのタイムゾーンに従う場合は、日付時刻を「偽装」することができるからです。開発中のアプリでは時間に敏感なデータを扱っているので、サーバーのタイムゾーンを追うほうが私の場合はもっと可能です。 – Gene

答えて

1

オフセットを使用すると、現在の日時をa特定のタイムゾーン。

function convertEpochToSpecificTimezone(offset){ 
    var d = new Date(1495159447834); 
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000); //This converts to UTC 00:00 
    var nd = new Date(utc + (3600000*offset)); 
    return nd.toLocaleString(); 
} 

オフセットは特定のタイムゾーンになります。例:GMT +03:00、オフセットは+3です。 GMT -10:00の場合、オフセットは-1

-1

初期日付をエポックに設定し、UTC単位を追加します。数秒で保存されたUTCエポックのvarがあるとします。

var utcSeconds = 1234567890; 
var d = new Date(0); // The 0 there is the key, which sets the date to 
the epoch 
d.setUTCSeconds(utcSeconds); 

それとも

moment.unix(yourUnixEpochTime).format('dddd, MMMM Do, YYYY h:mm:ss A') 

momentjs使用するかは、このよう

var dateVal ="/Date(1342709595000)/"; 
 
var date = new Date(parseFloat(dateVal.substr(6))); 
 
document.write( 
 
    (date.getMonth() + 1) + "/" + 
 
    date.getDate() + "/" + 
 
    date.getFullYear() + " " + 
 
    date.getHours() + ":" + 
 
    date.getMinutes() + ":" + 
 
    date.getSeconds() 
 
);
を使用することができますどのよう1234567890についてのローカルタイムゾーンに適切な日付にそれを変換するには

関連する問題