JSON日期至C#MVC日期



这可能是一个可能的重复,但是我在搜索很多并尝试了各种方法后发布了此功能。

我将模型作为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]);

最新更新