将.NET DateTime转换为Javascript日期

Owe*_*wen 3 javascript wcf datetime date

我有一个WCF服务,为我的javascript提供一些日期.我想操纵日期,但它到达javascript看起来像这样:

/Date(1361145600000+0000)/
Run Code Online (Sandbox Code Playgroud)

我知道这是自1970/01/01以来的几毫秒,但我还没有弄清楚如何将它转换为javascript日期.

我是否需要使用正则表达式或修剪文本来提取毫秒,然后像这样使用它:

new Date(miliseconds)
Run Code Online (Sandbox Code Playgroud)

当然必须有一个更简单的方法吗?

ken*_*bec 5

如果'+ 0000'是标准时区偏移量,则前2位是小时,最后2位是分钟.

据推测它并不总是'0000' -

您需要添加(或减去)从UTC到第一个整数部分的毫秒差异,以返回正确的日期.

   function timeconvert(ds){
        var D, dtime, T, tz, off,
        dobj= ds.match(/(\d+)|([+-])|(\d{4})/g);
        T= parseInt(dobj[0]);
        tz= dobj[1];
        off= dobj[2];
        if(off){
            off= (parseInt(off.substring(0, 2), 10)*3600000)+
(parseInt(off.substring(2), 10)*60000);
            if(tz== '-') off*= -1;
        }
        else off= 0;
        return new Date(T+= off).toUTCString();
    }
    timeconvert('Date(1361145600000)+0000');
Run Code Online (Sandbox Code Playgroud)

//返回值:(String UTC)

2013年2月18日星期一00:00:00 GMT

如果日期ARE在UTC("+0000")总是你可以拉显著数字从与字符串

    function timeconvert(ds){
        var d=ds.match(/(\d+)/)[1];
        return new Date(+d).toUTCString();
    }
    timeconvert('Date(1361145600000)+0000)');

// returned value: (String UTC)

Mon, 18 Feb 2013 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)