介绍:
我WebMethod
在ASP.NET页面上有一个返回Person
对象的页面。其中一个字段是Birthday
这是一个DateTime
性质。
Web方法
[WebMethod]
public static Person GetPerson()
{
Person p = new Person() {
Id = 1,
Name = "Test",
Birthday = new DateTime(1988, 9, 13)
};
return p;
}
如果使用进行呼叫,则会$.ajax()
获得服务器与Person
对象的响应。
阿贾克斯电话
// 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)));
}
});
}
});
结果:
{"__type":"AjaxTest.Classes.Person","Id":1,"Name":"Test","Birthday":"/Date(590104800000)/"}
问题
如何将Birthday
[/ Date(590104800000)/] 解析为javascript / jQuery日期?我试过了,new Date(Date.parse(data.d.Birthday))
但是给了我一个Invalid date
。
使用convertToJavaScriptDate()
为您执行此操作的功能:
function convertToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}
该convertToJavaScriptDate()
函数接受\/Date(ticks)\/
格式值,并以格式返回日期字符串MM/dd/yyyy
。
在内部,该convertToJavaScriptDate()
函数使用表示pattern的正则表达式/Date\(([^)]+)\)/
。
该exec()
方法接受源日期值并测试该值是否匹配。的返回值exec()
是一个数组。在这种情况下,结果数组(results[1]
)的第二个元素保存源日期的滴答声部分。
例如,如果源值\/Date(836418600000)\/
然后results[1]
会836418600000
。
基于此刻度值,将形成一个JavaScript Date对象。Date对象具有一个构造函数,该构造函数接受自1970年1月1日以来的毫秒数。
因此,它dt
保存一个有效的JavaScript Date对象。然后,
该convertToJavaScriptDate()
函数将日期格式设置为,MM/dd/yyyy
并返回到调用方。
您可以使用convertToJavaScriptDate()
如下所示的功能:
options.success = function (order) {
alert("Required Date : " + convertToJavaScriptDate(order.RequiredDate) + ", Shipped Date : " + convertToJavaScriptDate(order.ShippedDate));
};
尽管上面的示例使用MM/dd/yyyy
格式的日期,但是一旦构造了Date对象,您也可以使用其他格式。
参考:链接
问题内容: 需要有关将具有以下结构的ISO 8601日期转换为javascript的帮助/提示。 我想这样格式化日期: 我想保持此解决方案尽可能干净和最小。 问题答案: datejs可以解析以下内容,您可能想尝试一下。 编辑:正则 表达式版本 结果 Edit2: 我将时区更改为EST,现在我关注了 返回 基本上 返回 正则表达式部分只是将上述字符串转换为您所需的格式。
问题内容: 我想使用joda库(在scala中,但应该与java相同)解析DateTime。 来源看起来像 在Java中,这看起来像 不幸的是,这不起作用,但会引发异常: 为什么不起作用?当然,我可以忽略“ CEST”部分,而只分析其余部分,但是有时在输入中“ CEST”可以用“ CET”代替,所以我不想忽略它。 问题答案: 问题是因为区域名称短而并非唯一。请参阅DateTimeFormatter
我正在尝试使用Java 8新的日期模式而不是Joda,我有以下问题: 两者都有 和 引发“Java . time . format . datetimeparseexception”异常。正在… 工作正常。 异常的原因是: Java . time . format . datetimeparseexception:无法在索引22处分析文本“02/05/16 11:51.12.083 04:30”
问题内容: 我从Web服务获取日期,它们看起来像这样: 如何将其转换为javascript中的日期对象? 我已经在Google上搜索了一下,却找不到合适的答案-这可能部分是由于我不太确定这种日期对象是什么的事实-因此,如果有人也能对此有所了解,那将不胜感激。 问题答案: 退货 2011年7月9日星期六6:52:41 GMT + 0200(南非标准时间) 如果您需要按问题剥离它:
问题内容: 我正在尝试使用Java 8 DateTime API解析日期时间字符串。 要解析的字符串包含日期,月份,年份和AM / PM标记,例如。我使用以下模式:并且我希望将解析的LocalDateTime时间部分设置为AM / PM标记或取决于AM / PM标记。 使用以前的API,解析可以使用此模式按预期进行。 但是当我使用Java 8 DateTime API并运行以下代码时: 我得到以下
问题内容: 每个人。我收到此错误: 对于这段代码 关于为什么发生这种情况的任何建议,我都会吸用结构化语言,以便您知道:) 问题答案: 使用。