私の Java スクリプト アプリケーションは、.net Web サービスを使用してバックエンドからデータを取得します。日付/時刻の変換を除いて、すべて正常に機能します。サービスから返されたエポック日付をユーザーのローカル ブラウザーの日付に変換する必要があります。
Web サービスは、以下の形式で日付を返します。
/Date(1335341422660-0500)/
これは、これを人間が読める日付に変換するために行ったことです。
ハイフン (-) の後のすべてを取り除き、残りのデータを日付変換に使用します
var dateVal=dateField.replace(/-.*\)/g,')');
var date = new Date(parseFloat(dateVal.substr(6)));
var dateArray=date.toString().split(" ");
if(dateArray.length>3){
timeZone=("("+dateArray[4])+")"
}
var month=date.getMonth() + 1;
var year=date.getFullYear();
var date=date.getDate();
var hours= date.getHours();
var offset=date.getTimezoneOffset();
var finalDateStr=(year+"-"+month+"-"+dateValue)+" "+hours+":"+
minutes+":"+seconds+" "+timeZone;
上記のエポック値の場合、予想される日付は、
4/24/2012 9:10:22 PM - この日付は、新しいアイテムが作成/更新されるたびに、この日付を MS SQL サーバーに挿入するソース アプリケーションである .net アプリケーションに表示されます。SQL サーバーの日付を (.net を使用して) ローカルの日付に変換し、UI に表示します。
しかし、上記のスクリプトを使用して日付を作成すると、次のように値が取得されます。
2012-4-25 4:10:22 (EDT) (上記の日付と比較して 7 時間以上)。
どこが間違っているのかわかりません..誰かがこの問題を理解するのを手伝ってくれますか?