2009-08-11 22 views

答えて

21

JavaScriptでは、Date objectを使用して現在の日付と時刻を取得できます。

var now = new Date(); 

あなたはタイムゾーンの調整を行うか、サーバーから時刻を取得し、this questionに私の答えをチェックしたい場合、これは、ローカル・クライアント・マシンの時刻を取得します。


編集:あなたのコメントを受けて、あなたは非常に簡単にクライアント側にサーバーの時間を取得することができます。

time.php

<? echo '{serverTime: new Date(' . time()*1000 .')}';?> 

シンプルJSON文字列が作成され、新しいDateオブジェクトが現在のサーバーtimeで初期化され、この値に1000が乗算されます。これは、PHPがタイムスタンプを秒単位で処理するためです。 JavaScriptはミリ秒で実行します。

あなたは、このようなサーバー時間取得することができます

そして、あなたの他に:

$.getJSON('time.php', function (data) { 
    alert(data.serverTime); 
}); 

ちょうどtime.php、と返されたオブジェクトのSERVERTIMEプロパティへのアクセスから日付を取得するためのgetJSON要求を行います。

+0

によって提供された応答に記述されている方法で確認することが可能ですPHPを使用してサーバー側の日付を変数に代入し、その変数をJqueryで使用しますか? – amir

+0

お返事ありがとう、非常に役に立ちました 週に特定の日(すなわち、金曜日)をチェックする方法があるかどうか疑問に思っています ありがとう – amir

+0

PHPでstrtotime関数http://is.gd/を見てください2budP ... ie:strtotime( "次の金曜日") – CMS

6

クライアントマシンから現在の日時を取得するのは神の習慣ではありません。

このチェックをサーバー側にします。

jQueryを使用してページにAjaxリクエストを行い、現在の日付と時刻を返すことができます。生のjavascriptが提供するとして、これまでの回答を明確にするために

+0

あなたのユーザーのタイムゾーンがわからないかぎり(例えば、ログインしていて、何らかの段階でそれを提供している場合)、サーバーの時間は現地時間になる可能性は低いです。この場合、ユーザーのブラウザから提供された時間を使用する方が良いでしょうか? – drevicko

2

...現在の日付を取得

  1. は、(それがそうする能力を持っていた場合であっても)のためのjQueryを使用する必要がありますものではありませんこの施設。

    var currentTimeAndDate = new Date();

  2. 例外はほとんどありませんが、時計が正しく設定されているかどうかを知る方法がないため、クライアントマシンから現在の時刻/日付を取得しないようにしてください。ある程度の予測可能性を提供するために、常にサーバーからの日付を取得します。しかし、これは、クライアントが真にサーバーの1日前または後になる可能性があるため、絶対に安全ではないため、アプリケーションに合った方法で状況を処理する方法を決定する必要があります。

UPDATE:

静的および動的日付/時間を取得を区別する必要もあります。

サーバーが時刻/日付を直接ページにレンダリングするとき、たとえば、「このページは1962年7月24日12:34 GMTで生成されました」というような静的な場合があります(これはきちんとしたトリックです1962年にウェブサーバが存在しなかったことを考慮して)。

積極的にAJAXを使用して時刻表示を更新されたクライアントページは海流の時間のためにサーバーを尋ねるために呼び出すときに動的である - これは@CMS

関連する問題