0

Ajax 呼び出しを使用してサーバーの日付と時刻を取得しようとしています。必要な値を取得できますが、それを使用して JavaScript 日付オブジェクトを作成しようとすると、無効な日付エラーが発生します。トリムを使用してスペースも削除しようとしました。何か案は?

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
4

1 に答える 1

2

文字列をリテラル コードのように使用しようとしています。を使用するようなものですevalが、実際には . を含めませんeval

はい、evalそれを行う1つの方法です: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 に答える