30

PHP サーバーの時刻を JavaScript ファイルに渡したいと考えています。

PHP コード:

date_default_timezone_set('Australia/Perth');
echo date("r");

JavaScript:

$.get('time.php', function(data) {
  today = new Date(data);
  closing = new Date(data);
});

PHP コードは、Sun, 18 Mar 2012 12:01:23 +0800 を返します。これは、オーストラリア/パースの正しい時刻です。しかし、これは無効な JavaScript 日付オブジェクトを返します。

次のようなタイムスタンプに変換しようとすると:

 echo strtotime(date("r"));

JavaScript の日付 Sun Mar 18 2012 04:03:14 GMT+0000 (WET) を取得します (これは今日の js 変数の値です)

私が使用する場合:

echo gmstrftime('%s');

2012 年 3 月 17 日土曜日 20:04:30 GMT+0000 (WET)。

誰でも私を助けてもらえますか?

4

8 に答える 8

59

Luna の回答にあるPHP コードは、echo dateJavaScript コードとまったく同じではありません。これは、JavaScript コードを正確に模倣します。

echo date('D M d Y H:i:s O');
于 2013-01-27T17:14:34.493 に答える
10
$.get('time.php', function(data) {
  today = new Date(data);
  closing = new Date(data);
});

文字列を 1000 倍する目的は何ですか? その操作は意味がありません。

このPHPはそのために機能します。

echo date('D, d M y H:i:s')." +0000";
于 2012-03-18T04:09:37.263 に答える
7
date('D M d Y H:i:s O')

現在のロケールが英語でない場合は機能しません。

より良い代替手段は、次を使用することです。

new Date(<? echo date("Y, n - 1, d, H, i, s") ?>)
于 2015-01-15T10:31:11.790 に答える
4

以下は、DateTime オブジェクトの例です。

PHP コード (PHP 5.3 以降で動作)

$serverDate = new \DateTime('NOW');

// If you want to set a different time zone
// $serverDate = new \DateTime('NOW', new \DateTimeZone('Australia/Perth'));
echo $serverDate->format(DATE_ATOM);

JavaScript コード

$.get('time.php', function(data) {
  var serverDate = new Date(data);
});
于 2017-05-31T09:37:34.470 に答える
3

良い方法はタイムスタンプです:

echo $data = time()*1000;
echo '
  <div id="setxDatetime">The current server time is: </div>
  <script type="text/javascript">
    var x = document.getElementById("setxDatetime");
    x.innerHTML = x.innerHTML + new Date(' . $data . ');
  </script>
';

1381324693000

現在のサーバー時間: Wed Oct 09 2013 16:18:13 GMT+0300 (GTB Standard Time)

于 2013-10-09T13:18:54.200 に答える
-4

それは非常に簡単です:

new Date("<?= date('Y/m/d H:i:s'); ?>");
于 2016-07-08T19:52:14.847 に答える