我有一个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("FailednreadyState: "+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日期对象时,仍然会得到无效的日期?
请告诉我实现它的正确方法。
您不需要在日期字符串中添加额外的引号,并且在日期和时间组件之间需要一个空格,请尝试:
new Date(pdate + " " + ptime);
尝试使用名为Moment.js 的惊人的日期库
moment("2012/07/16 22:00:00")
从那里你可以通过约会实现一切。
这:
var max_date = new Date("'" + pdate + ptime + "'");
应为:
var max_date = new Date(pdate + ' ' + ptime);
下次遇到此类问题时,请对发送给函数的值发出警报,并查看其外观。