2012-07-17 83 views
0

我有一个Python脚本返回我计算的日期时间XML格式像下面值Date对象:JS创建从通过AJAX通过呼叫

<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日期对象时,仍然无效的日期?

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

回答

0

你并不需要额外的一套报价在你的日期字符串,你需要的日期和时间部件之间的空间,尝试:

new Date(pdate + " " + ptime); 
0

尝试使用惊人的lib的日期称为Moment.js

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

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

0

此:

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

应该是:

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

你碰上这样的问题,下一次把警报在你发送给函数的值,看看它的样子。