2016-09-02 11 views
0

日付が奇妙な形式であり、JS Dateオブジェクトに変換する方法がわかりません。私はmoment.jsのようなライブラリにはこのためのユーティリティがあると確信していますが、私は本当にこの変換のためだけにライブラリ全体をロードしたくありません。ここでのデータは次のとおりです。日付をJS日付オブジェクトに変換する

/日(1472586116588から0400)/

EDIT: 私は、代わりにC#の日付時間のJSON文字列を使用するためのバックエンド・コードを更新しています次のように私は日時を変換:これは私にこの文字列を与えている

Date.ToString("s"); 

:2016-09-02T10:13:だから今

12私の問題私はVaRの日付を行った場合です=新しい日付(「2016-09-02T10:13:12」)。

金2016年9月2日6時13分12秒GMT-0400(EDT)

をしかし、それは私を与える必要があります:Javascriptをバック与え

金2016年9月2日10時13分12秒GMT-0400( EDT)

タイムゾーンの変換が倍増しているようですか?誰でもこれを修正する方法を知っていますか? hhmmオフセットと

+0

MDN Docs [日付](https://developer.mozilla.org/en/US/docs/Web/JavaScript/Reference/Global_Objects/Date) – Jecoms

+0

これはUnixのタイムスタンプであるはずですか? – Bwaxxlo

+0

var dateObject = new Date(1472586116588-0400);これはあなたが欲しいですか? –

答えて

0

私は、これはエポックからのミリ秒であると仮定していますので、私はどうなる:8601メートの代わりに、ISOに文字列にバックエンドのデータを変更することにより、

var input = "/Date(1472586116588-0400)/"; 
 
var [match, msec, offset] = input.match(/\((\d+)([+-]\d+)\)/); 
 
var offsetHours = Math.floor(offset/100); 
 
var offsetMinutes = offset - offsetHours * 100; 
 
var date = new Date(msec - offsetHours * 60 * 60 * 1000 - offsetMinutes * 60 * 1000); 
 

 
console.log(date);

0

を修正しますC#DateTimeは、次のようになります。

date.ToString( "o");

これは、新しいDate({string here})を使用してjavascriptの日付に変換することができます。

JSONデータをフロントエンドに合わせてハッキングするのではなく、バックエンドで修正することを提案してくれたJames Thorpe氏の功績を称えました。

関連する問題