这可能是一个可能的重复,但是我在搜索很多并尝试了各种方法后发布了此功能。
我将模型作为AJAX成功的JSONRESULT传递,并将值与控件结合。在我的模型中,我有一个DateTime属性,该属性具有正确的日期值,但是在我的Ajax成功中,它将转换为类似的'/date(1493749800000(/'。
现在,当我想在我的MVC模型的DateTime属性中使用DateTime值以进行进一步的函数时,它的null为null。
请建议我解决这种情况。
我尝试的事情:date.parse((,json.parse((,string.replace((
imho,在执行后端通信时,与时间戳日期一起工作总是更好。这样,您就可以减少转化问题的机会。在这里,您有两个功能可以从API中进行工作:
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
return dtDateTime;
}
public static long DateTimeToUnixTimeStamp(DateTime value)
{
long epoch = (value.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
return epoch;
}
我认为您可以使用下面的行以串行的日期进行类似的内容: JsonConvert.DeserializeObject<DateTime>(yourDate);
您也可以通过以下方式使您的模型进行现实:
JsonConvert.DeserializeObject<YouModel>(JsonModelData);
这就是我在以前的一个项目之一中所做的方式,我认为您获得了所有数据,包括AJAX成功方法中的日期。现在,
success: function(data)
{
var jsonDate = data.myDateField;
var value = new Date(parseInt(jsonDate.toString().substr(6)));
var finalResult = value.getMonth() + 1 + "/" + value.getDate() + "/" +
value.getFullYear();
}
最终的重新点是您期望的日期。现在,您可以将其呈现在HTML中,很简单。
有关更多信息,您可以访问此博客,由Great Hanselman撰写。
Bellow是片段,您的日期来自服务器。只需运行即可。 And dont confuse
带有/Date(1493749800000)/
的字符串CC_4。我的意思是转换后的日期。因为这是您保存在数据库中的实际日期。
var jsonDate = "/Date(1493749800000)/";
var value = new Date(parseInt(jsonDate.toString().substr(6)));
var finalResult = value.getMonth() + 1 + "/" + value.getDate() + "/" +
value.getFullYear();
console.log(finalResult);
//alert(finalResult);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
希望它有帮助。干杯!:(
var input = '/Date(464560200000)/'
var a = //Date((d*))//.exec(input);
var d = new Date(+a[1]);