私は初めて挑戦しますアヤックスjQuery を使って、ページにデータを取得していますが、Date データ型に対して返される JSON データに問題があります。基本的に、次のような文字列が返されます。
/Date(1224043200000)/
JSON をまったく知らない人からの質問です。これを短い日付形式にするにはどうすればいいでしょうか? これは jQuery コードのどこかで処理する必要がありますか? プラグjQuery.UI.datepicker
インを使用してみました$.datepicker.formatDate()
が、成功しませんでした。
参考までに: ここでの回答を組み合わせて私が思いついた解決策は次のとおりです。
function getMismatch(id) {
$.getJSON("Main.aspx?Callback=GetMismatch",
{ MismatchId: id },
function (result) {
$("#AuthMerchId").text(result.AuthorizationMerchantId);
$("#SttlMerchId").text(result.SettlementMerchantId);
$("#CreateDate").text(formatJSONDate(Date(result.AppendDts)));
$("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts)));
$("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts)));
$("#LastUpdatedBy").text(result.LastUpdateNt);
$("#ProcessIn").text(result.ProcessIn);
}
);
return false;
}
function formatJSONDate(jsonDate) {
var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
return newDate;
}
このソリューションは、コールバック メソッドからオブジェクトを取得し、日付形式ライブラリを使用してページに日付を適切に表示しました。
ベストアンサー1
eval()
必要ありません。これは問題なく動作します:
var date = new Date(parseInt(jsonDate.substr(6)));
関数は部分substr()
を取り出し/Date(
、parseInt()
整数を取得して)/
末尾の を無視します。結果の数値はDate
コンストラクターに渡されます。
私は意図的に基数(の2番目の引数parseInt
)を省略しました。私のコメントは以下。
また、私は完全に同意しますロリーのコメント: ISO-8601 の日付はこの古い形式よりも優先されます。そのため、この形式は通常、新しい開発には使用しないでください。
ISO-8601 形式の JSON 日付の場合は、文字列をDate
コンストラクターに渡すだけです。
var date = new Date(jsonDate); //no ugly parsing needed; full timezone support