1

いくつかの情報とそれが作成された日付(サーバー時間)を表示するページがあります。サーバー時間とユーザー時間の両方で日付を表示する方法が必要です。

例: 26年10
月13:48:23(サーバー)
26年10月14:48:23(あなたの時間)->情報

私がこれまでに持っているもの:

<?php
    $sql=mysql_query("SELECT * FROM table") or die("Come back later");
    while($row=mysql_fetch_array($sql)) {
        echo date('M, d H:i:s', strtotime ($row['date'])).' -> '.$row['info'];
    }
?>

ありがとうございました。

編集: 私はこの権利を説明しなかったと思います。日付はデータベースに保存されており(日付は将来のイベントの将来のポイントです)、ユーザーのタイムゾーンで日付を表示したいと思います。

たとえば、26日目の12:10:22(サーバー時間)に何かが発生するので、ユーザーの時間を簡単にするために、ユーザー時間への変換を表示したいと思います。

編集2 例:違いを使用して、ユーザーのタイムゾーンを検出します。

4

4 に答える 4

0

PHPはサーバー言語であるため、ユーザーのコンピューターの時刻を取得することはできません。あなたができることは、それがあなたの意図でないならば、javascriptによってこの時間を取り、そのユーザーのためにデータベースに保存することです。時間をかけるためにjavascriptは簡単です:

var date = new Date();
hour = date.getHours();
minutes = date.getMinutes();
seconds = getSeconds();
于 2012-10-26T14:01:35.540 に答える
0

mysql_*関数を使用してはならないという事実は別として、ここのコメントを参照してください


エコーすることでサーバー時間を表示でき、date()を使用してクライアントのブラウザのjavascriptからクライアント時間を取得できます。new Date()

于 2012-10-26T13:50:31.987 に答える
0

私はこれまでこれを行う必要はありませんでした。正直なところ、あなたが何をしようとしているのかを確認するのに苦労しているため、答えるのが少し難しくなっています。それでも、私は(どういうわけか)それに答えようとし、あなたがギャップを埋めることができることを願っています。

サーバー時間

サーバー時間を取得するには、time()またはdate()関数を使用します(他のメソッドもありますが、それらで十分です)。ただし、time()の呼び出しは、現在の時刻を取得する他の関数と同じように遅くなる可能性があります(時刻を取得するにはシステムコールが必要になるため)。また、スクリプトの実行に1秒以上かかる場合は、呼び出しごとに変更されることに注意してください。これにより、一貫性の問題が発生する可能性があります。回避策は、可能であれば$ _SERVER ['REQUEST_TIME']を使用することであり、現在のシステム時刻をアクティブに取得するtime()、date()などを繰り返し呼び出すことによって発生する可能性のある不変エラーと速度の問題を修正します。

クライアント時間

これは、JavaScriptで「newDate()」を使用して実行する必要があります。

onloadイベントの後(または、DOMがロードされた後)、javascript(クライアント)時間をポストするajaxリクエストを実行します。AJAXリクエストを処理するPHPスクリプトは、クライアント時間とサーバー時間の両方を認識します(ただし、サーバー時間は、遅延やその他のオーバーヘッドのために、提供されたクライアント時間よりも常にわずかに進んでいるため、100%正確ではありません。 ajaxリクエスト自体)。

あなたのコード

私の理解では、ユーザーとサーバーの時間を取得し、そのメンバーのためにデータベースに保存しますか?上記の解決策を使用すると両方を得ることができますが、あなたの質問を理解するのは少し難しいので、それらを取得したら、2つの日付で何をするかについて残りの部分をあなたに任せなければなりません。

于 2012-10-26T16:27:37.347 に答える
0

私は完全に異なるアプローチを提案します:

ジオロケーション

ユーザーのIPアドレスを使用して、ユーザーのタイムゾーンを取得します。利点は、ユーザーが国を変更した場合でも、正しい時刻が表示されることです。ただし、欠点は、ジオロケーションが失敗することがあることです。また、プロキシはこの種のユーザーの検索を回避します。

ここでそれを読んでください:

または、Javascriptを使用して一般的な時間を現地時間に変換します

Javascriptを使用すると、この機能を適切に機能低下させて実装できます。これは常に良いことですよね?理想的には、特定のタグで時間を提供します(またはクラスを使用します)

<date>Fri, 26 Oct 2012 20:52:05 +0000</date>
<time>Fri, 26 Oct 2012 20:52:05 +0000</time>

お気に入りのjavascriptライブラリ(ここではjQueryを使用)と標準 Dateオブジェクトを使用して、これを簡単に変更できます。

$("date").each(function(self) {
    var date = new Date($(this).text());
    $(this).text(date.toLocaleString());
});

$("time").each(function(self) {
    var date = new Date($(this).text());
    $(this).text(date.toTimeString()+
        " ("+date.getHours()+":"+date.getMinutes()+")");
});

これがフィドルです:http://jsfiddle.net/FdQRH/

于 2012-10-26T19:19:28.123 に答える