0

我有一个 Python 脚本,它以 XML 格式返回一个计算的日期时间,如下所示:

<prev><date>2012,07,16</date><time>22:00:00</time></prev>

虽然我可以更改格式,但我的问题是,当我尝试使用返回的值创建 JS 日期对象时 - 我得到“无效日期”:

$.ajax({
        async: false,
        type: "POST",
        url:  "/cgi-bin/prev_hour.py",
        success: function(xml)
        {
                pdate = $(xml).find('date').text();
                ptime = $(xml).find('time').text();
                //alert prints correct date time ex 2012-07-16 22:00:00
        },
        error:function(xhr,err,html)
        {
                alert("Failed\nreadyState: "+xhr.readyState+"\nstatus: "+xhr.status + "\nresponseText: "+xhr.responseText);
        }

var max_date = new Date("'" + pdate + ptime + "'");
alert(max_date);

我尝试了几种可能性,例如以各种格式返回的 Python 脚本:

<prev><date>2012/07/16 </date><time>22:00:00</time></prev>
<prev><date>2012,07,16 </date><time>22,00,00</time></prev> 

但是在尝试创建 JS 日期对象时我仍然得到无效的日期?

请让我知道实现它的正确方法。

4

3 回答 3

0

尝试对名为Moment.js的日期使用惊人的库

moment("2012/07/16 22:00:00")

从那里你可以用日期实现一切。

于 2012-07-17T07:10:24.540 回答
0

您不需要在日期字符串中添加额外的引号,并且在日期和时间组件之间需要一个空格,请尝试:

new Date(pdate + " " + ptime);
于 2012-07-17T07:12:12.210 回答
0

这:

var max_date = new Date("'" + pdate + ptime + "'");

应该:

var max_date = new Date(pdate + ' ' + ptime);

下次遇到此类问题时,请对发送给函数的值发出警报,看看它是什么样子的。

于 2012-07-17T07:12:28.933 回答