javascript日期和JSON日期时间

javascript日期和JSON日期时间

问题描述:

我有一个jQuery函数的getJSON一个问题,操作URL不会触发因为我传递的参数之一是一个JavaScript日期,但该行动预计C#的DateTime ..javascript日期和JSON日期时间

是否有可能格式化Javascript日期以使它与c#DateTime兼容?

我会建议使用Datejs库(http://www.datejs.com/)。从我有限的经验来看,这太棒了。

使用此功能从Mozilla Date documentation采取:

/* use a function for the exact format desired... */ 
function ISODateString(d){ 
function pad(n){return n<10 ? '0'+n : n} 
return d.getUTCFullYear()+'-' 
     + pad(d.getUTCMonth()+1)+'-' 
     + pad(d.getUTCDate())+'T' 
     + pad(d.getUTCHours())+':' 
     + pad(d.getUTCMinutes())+':' 
     + pad(d.getUTCSeconds())+'Z' 
} 

.NET不会有任何问题处理一个ISO格式的日期。您可以使用DateTime.Parse(...)来处理ISO格式的字符串。

如果你想一个解决方案来从JSON表示一个Javascript日期(/日期(1350035703817)/),你可以使用this function

function parseJsonDate(jsonDate) { 
    var offset = new Date().getTimezoneOffset() * 60000; 
    var parts = /\/Date\((-?\d+)([+-]\d{2})?(\d{2})?.*/.exec(jsonDate); 

    if (parts[2] == undefined) 
     parts[2] = 0; 

    if (parts[3] == undefined) 
     parts[3] = 0; 

    return new Date(+parts[1] + offset + parts[2]*3600000 + parts[3]*60000); 
}; 

为我工作一样的魅力。

我用这个函数比上面的要短。

function ParseJsonDate(dateString) { 
    var milli = dateString.replace(/\/Date\((-?\d+)\)\//, '$1'); 
    var date = new Date(parseInt(milli)); 
    return date; 
} 

还发现,将它们转换回来的方法:

function ToJsonDate(date) { 
    return '\/Date(' + date.getTime() + ')\/'; 
} 
+2

这似乎并不关心这个,有时追加到JSON日期时区信息。 – crush 2013-03-11 15:51:59