我正在对Web方法进行JQuery调用并返回JSON,但是当我尝试返回日期时遇到问题,它们以格式/日期(1298073600000)/返回。有人可以帮忙吗?
$(document).ready(function() {
$.ajax(
{
type: "POST",
url: "/CDServices.asmx/GetWeekEndingDates",
data: "{}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(msg) {
alert(msg.d.LastWeekEndingDate);
}
});
});
答案 0 :(得分:2)
如果msg.d.LastWeekEndingDate
包含/Date(1298073600000)/
,您应该应用一点正则表达式去除时间戳:
var mydate = new Date(+msg.d.LastWeekEndingDate.match(/\/Date\((\w+)\)\//)[1]);
正则表达式返回一个字符串文字,需要转换为数字。我使用表达式前面的+
来做到这一点。结果是:
console.log(mydate); // === Sat Feb 19 2011 01:00:00 GMT+0100 {}
<强>更新强>:
Date object
向您公开了几种方法。例如:
console.log([mydate.getDate(), mydate.getMonth()+1, mydate.getFullYear()].join('/'));
会返回19/2/2011
。
请参阅https://developer.mozilla.org/en/JavaScript/Reference/global_objects/date
答案 1 :(得分:0)
$(document).ready(function() {
$.ajax(
{
type: "POST",
url: "/CDServices.asmx/GetWeekEndingDates",
data: "{}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(msg) {
var aDate = new Date(msg.d.LastWeekEndingDate);
var month = aDate.getMonth() + 1;
var day = aDate.getDate();
var year = aDate.getFullYear();
var usethis = day + "/" + month + "/" + year;
}
});
});
答案 2 :(得分:0)
var dtE = /^/Date((-?[0-9]+))/$/.exec(msg.d.LastWeekEndingDate); if(dtE){ var dt = new Date(parseInt(dtE [1],10)); 警报(DT); }
参考SO question,这需要根据您的要求进行修改。