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

Javascript's Date function always returns current time with differend Json strings as input

本文关键字:字符串 Json 输入 时间 返回 Date 函数 Javascript      更新时间:2023-09-26

我有一个AJAX调用,它返回一个包含几个不同DateTimes的JSON字符串。如果我不转换它们,我得到像/Date(1224043200000-0600)/这样的字符串。如果我使用JavaScript中的Date函数转换它们,它将返回当前时间。我读过一篇关于这个的文章,但它没有回答我的问题。这里是一个简化的脚本,可以粘贴在一个新的文件,显示我的问题。Raw Span应该显示原始字符串,convert 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>
这段代码的结果如下:
/Date(1224043200000-0600)/
 Mon Aug 22 10:35:21 UTC+0200 2011 

谁能告诉我我应该怎么做才能在对象中显示正确的日期时间?网格包含我所有的日期,在每个单元格中显示当前时间,尽管JSON一直返回不同的字符串。

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

还要加上:

var date = new Date(parseInt(datum.substr(6)));
CONVERTED.innerHTML = formatDate(date);