我正在使用 JSON 向客户端发送数据。但是,日期字段会转换为时间跨度格式,例如/Date(1363807800000)/
.
有没有办法摆脱它,让服务器DateTime
像客户端一样发送值2013/7/21 3:44 PM
?
我正在使用 JSON 向客户端发送数据。但是,日期字段会转换为时间跨度格式,例如/Date(1363807800000)/
.
有没有办法摆脱它,让服务器DateTime
像客户端一样发送值2013/7/21 3:44 PM
?
想到这里,
var data = "/Date(1363807800000)/";
var date = new Date(parseInt(data.replace("/Date(", "").replace(")/", ""), 10));
var result = date.getFullYear() + "-" + (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-" + (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " " + (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes());
然后,使用这个 RegEx 来验证它,
/ ^ \ d {4} - \ d { 2} - \e{2} \e{2}:\e{2}:\e{2} $ /
希望这可以帮助...:)
这是使用 Json.NET 的解决方案(您可以通过 NuGet 安装它):
object testObject = new { Name = "TestName", DateTime = DateTime.Now };
string output = JsonConvert.SerializeObject(testObject, new IsoDateTimeConverter());
Console.Write(output);
输出:
"{\"Name\":\"TestName\",\"DateTime\":\"2013-07-21T15:01:56.2872469+03:00\"}"
如果 ISO DateTime 格式不适合您,您可以编写自己的 DateTimeConverter 以与 SerializeObject 函数一起使用。
我写过一次,也许你可以将字符串添加到你的 json 中?
var getDate = function() {
var date = new Date();
var prefix = "["
+ date.getDate() + "."
+ (date.getMonth() + 1) + "."
+ date.getFullYear() + " "
+ date.toString().split(" ")[4]
+ "]";
return prefix;
};