Miv*_*web 13 javascript c# asp.net ajax jquery
介绍:
WebMethod我的ASP.NET页面上有一个返回Person对象的页面.其中一个字段是Birthday这是一个DateTime性质.
的WebMethod
[WebMethod]
public static Person GetPerson()
{
Person p = new Person() {
Id = 1,
Name = "Test",
Birthday = new DateTime(1988, 9, 13)
};
return p;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用$.ajax()我的电话进行调用,我会得到服务器对该Person对象的响应.
Ajax调用
// Class instance
var Ajaxcalls = function () {
}
_$.extend(Ajaxcalls, {
GetPerson: function (label) {
var self = label instanceof _$ ? label : $(label);
_$.ajax({
url: 'Default.aspx/GetPerson',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(JSON.stringify(data.d));
self.html(new Date(Date.parse(data.d.Birthday)));
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
结果:
{"__type":"AjaxTest.Classes.Person","Id":1,"Name":"Test","Birthday":"/Date(590104800000)/"}
Run Code Online (Sandbox Code Playgroud)
问题
如何将Birthday[/ Date(590104800000)/] 解析为javascript/jQuery日期?我试过new Date(Date.parse(data.d.Birthday))但它给了我一个Invalid date.
Aru*_*K V 21
使用ToJavaScriptDate() 为您执行此操作的功能:
function ToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}
Run Code Online (Sandbox Code Playgroud)
该ToJavaScriptDate()函数接受\/Date(ticks)\/格式的值并以格式返回日期字符串MM/dd/yyyy.
在内部,该ToJavaScriptDate()函数使用表示模式的正则表达式/Date\(([^)]+)\)/.
该exec()方法接受源日期值并测试值中的匹配项.返回值exec()是一个数组.在这种情况下,结果数组(results[1])的第二个元素保存源日期的刻度部分.
例如,如果源值\/Date(836418600000)\/然后results[1]会836418600000.
基于此刻度值,形成JavaScript Date对象.Date对象有一个构造函数,它接受自1970年1月1日以来的毫秒数.
因此它dt拥有一个有效的JavaScript Date对象.然后,
该ToJavaScriptDate()函数将日期格式化为MM/dd/yyyy并返回给调用者.
您可以使用ToJavaScriptDate()如下所示的功能:
options.success = function (order) {
alert("Required Date : " + ToJavaScriptDate(order.RequiredDate) + ", Shipped Date : " + ToJavaScriptDate(order.ShippedDate));
};
Run Code Online (Sandbox Code Playgroud)
虽然上面的示例在MM/dd/yyyy格式中使用日期,但是一旦构造了Date对象,您就可以自由地使用任何其他格式.
参考:链接
| 归档时间: |
|
| 查看次数: |
15837 次 |
| 最近记录: |