0

我正在尝试使用 Ajax 调用获取服务器日期和时间。我能够检索我需要的值,但是当我尝试使用它来创建一个 javascript 日期对象时,我得到一个无效的日期错误。我也尝试使用修剪来删除任何空格。有任何想法吗?

阿贾克斯调用:

// 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');
?>

控制台输出(铬):

Data: 12,06,08,15,07,57 
Current date from server: Invalid Date
4

1 回答 1

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);
于 2012-06-08T19:14:16.170 回答