2016-06-16 4 views
-2

デバイスの日付がjavascriptで真でない場合はどうすれば確認できますか? (似ている:晴れの日付が2016/6/16で、デバイスの日付が2016/6/15の場合は警告を表示)デバイスの日付が正しくないかどうかを検出するにはどうすればよいですか? - JavaScript

+1

クライアントのものだけでは、できません。 JSはそのクライアントの内部で実行されているため、クライアントの時計が提供している日付のみが表示されます。ガベージ・ガーベッジ・アウト - 知られている外部ソースとクライアントの日付/時間を比較する必要があります。もちろん、何かGROSSLYが間違っていると、1972年のように、あなたのコードが2016年に存在したことを知っているときのように、あなたは小さなヒントがあるかもしれません。 –

+1

サーバーと話をしても、平日の問題で引き続き発生する可能性があります。ほとんどのタイムゾーンの問題を回避するために、日付のUTC値を取得することを検討してください。 – MarcoL

+0

信頼できるサーバーに問い合わせてください。 – Oriol

答えて

0

デバイスの時計が100%確実で正しいかどうかを判断する方法はありません。つまり、AJAXまたはWebSocketsを使用して、信頼できるサーバーに日付/時刻スタンプを要求し、その情報とデバイスのレポートを比較することができます。最低限、ネットワークレイテンシを主な原因とするエラーマージンがあります。とにかく

、実用的な何か:

<script type="text/javascript"> 
    function myCallback(json) { 
    var internalNow = new Date(); 
    var externalNow = new Date(json.dateString); 
    var msg = ''; 
    if(
     internalNow.getUTCFullYear() == externalNow.getUTCFullYear() 
     && internalNow.getUTCMonth() == externalNow.getUTCMonth() 
     && internalNow.getUTCDate() == externalNow.getUTCDate() 
    ) { 
     msg = 'Date matches.'; 
    } 
    else { 
     msg = 'Date DOES NOT match.'; 
    } 
    alert(msg); 
    } 
</script> 
<script type="text/javascript" src="http://www.timeapi.org/utc/now.json?callback=myCallback"></script> 

これはHTTPSをサポートしていませんwww.timeapi.orgに依存しています。私はそれと同様のサービスを認識していません。自分のタイムサービスを設定する方が良いかもしれません。また、通常のマイナーな変動もチェックしていないので、UTCの深夜頃に問題が発生する可能性があります。

+0

問題はありません。別のサーバーに依頼してもjavascriptでその処理を行えます。それのために無料のサーバーはありますか? –

+0

@ZiyadZadi更新 – Ouroborus

+0

ありがとう、これは私が探していた答えです! –

関連する問題