我正在尝试使用Ajax调用获取服务器日期和时间。我能够检索我需要的值,但是当我尝试使用它创建一个javascript日期对象时,我得到一个无效的日期错误。我试图使用trim去除任何空格。有什么想法吗?
Ajax电话:
// ajax call to getcurrent server time
$.ajax({
type: GET',
url: 'datetime.php',
success: function(data) {
console.log("Data: " + data);
currentdate = new Date($.trim(data));
console.log("Current date from server: " + currentdate);
},
});
PHP代码:
<?php
echo date('y,m,d,H,i,s');
?>
控制台输出(Chrome):
Data: 12,06,08,15,07,57
Current date from server: Invalid Date
答案 0 :(得分:2)
您正在尝试使用字符串,就像它是文字代码一样。有点像使用eval
,但实际上没有包含eval
。
是的,eval
是一种方法:currentdate = eval("return new Date("+$.trim(data)+");");
然而eval
是邪恶的。相反,你应该这样做:
var elems = $.trim(data).explode(",");
elems[1]--; // remember months are zero-based in JS
currentdate = new Date(elems[0],elems[1],elems[2],elems[3],elems[4],elems[5]);
但更好的是,你的PHP脚本应该是echo time();
,那么你的JS可能是:
currentdate = new Date();
currentdate.setTime(data);