Javascript的Date函数总是以不同的Json字符串作为输入返回当前时间

Leo*_*ard 2 javascript json

我有一个AJAX调用,它返回一个包含几个不同DateTime的JSON字符串.如果我不转换它们,我会得到类似的字符串/Date(1224043200000-0600)/.如果我使用DateJavaScript中的函数转换它们,它将返回当前时间.我已经阅读有关此内容的帖子,但它没有回答我的问题.这是一个简化的脚本,可以粘贴在一个显示我的问题的新文件中.Raw Span应显示原始字符串,Converted Span应显示已转换的对象.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr">
    <body>
        <span id="raw">Raw</span><br />
        <span id="converted">Converted</span>

        <script type="text/javascript">
            var datum = "/Date(1224043200000-0600)/";

            function formatDate(value) {
                return Date(value);
            }

            var RAW = document.getElementById("raw");
            var CONVERTED = document.getElementById("converted");

            RAW.innerHTML = datum;
            CONVERTED.innerHTML = formatDate(datum);
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

该代码的结果如下:

/Date(1224043200000-0600)/
 Mon Aug 22 10:35:21 UTC+0200 2011 
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我应该做些什么来在对象中显示正确的DateTime吗?包含所有日期的网格显示每个单元格中的当前时间,尽管JSON始终返回不同的字符串.

Eli*_*liu 5

您的代码中存在一个错误,您正在返回对Date对象的调用,该对象将当前日期作为字符串.你应该做return new Date(value);一个新的对象.

还添加这个:

var date = new Date(parseInt(datum.substr(6)));
CONVERTED.innerHTML = formatDate(date);
Run Code Online (Sandbox Code Playgroud)

在这里查看测试http://jsfiddle.net/uwSCN/.