0

Javascript を使用してローカル ユーザーの UTC オフセットを検出し、その UTC オフセットを cfquery で大規模な Web サイトの残りの部分に使用する必要があります。

これが実行したいトップダウンのロジックです。Javascript データ (UTC オフセット) を Javascript セットから Coldfusion 変数に取得して、cfquery の SQL で使用できるようにする必要があります。

1.) ページの読み込み 2.) Ajax は単純な Javascript を呼び出してユーザーの UTC オフセットを取得します 3.) UTC オフセットは Coldfusion 変数で返されます 4.) Coldfusion 変数は SQL cfquery で使用され、ユーザーのタイムゾーンに合わせて UTC 日付を調整します。

4

2 に答える 2

0

考えられる方法の 1 つは、JavaScript を使用して、ヒットした最初のページにタイムスタンプ Cookie を設定することです。その後のページでは、その Cookie を cfcookie で参照します。

var curDateTime = new Date();
var tzoffset = "-" + (curDateTime.getTimezoneOffset()/60);
var expiredate = new Date();
expiredate.setTime(expiredate.getTime()+(120*24*60*60*1000)); // set expire date to 120 from now
document.cookie = "local_tz="+tzoffset+";expires="+expiredate.toGMTString();
于 2012-05-22T17:36:49.817 に答える
0
  1. 最初にオフセットを取得し、coldfusion cfc に送信します (jquery js ライブラリを使用していると仮定します)。

    var offsetmin = new Date().getTimezoneOffset(); //分単位 var offsethr = offsetmin/60; //時間

    $.ajax({
     type: "POST",
     url: WebRoot + "/pathtocfc.cfc?method=createClientOffset",
     data: "offset="+offsethr,
     dataType: "json"
    }).done(function(result){
        //make sure you saved it successfully with your client ip address
    

    });

  2. 次にcoldfusionにoffsetとipを保存

    <cffunction name="createClientOffset" access="remote" returnformat="JSON">
    <cfargument name="offset" >
    
    <!---get ip address from cgi scope--->
    
    <cftry>
      <!---try to save client ip and offset together using cfquery--->
    </cftry>
    
    </cffunction>
    

3. 後続のページ要求では、UDF を呼び出してクライアント オフセットを取得するか、クエリを実行して日付を返し、gmt 日付から utc オフセットを減算する前に呼び出しを行います。

    <cffunction name="readoffset" access="public">
    <cfargument name="ipaddress" >

    <!---use cfquery to match ipaddress with offset if it doesn't exist then use a default offset or add logic to create one if it doesn't exist--->


      <cfreturn offset />
    </cffunction>
于 2012-05-23T00:51:42.737 に答える