2016-11-01 13 views
0

私はPythonでFlaskアプリケーションを構築していますが、私はユーザーの現地時間を保存したいと思います。Flask、現地時間を取得

私はこの

time.strftime('%A %B, %d %Y %H:%M:%S') 

を使用してしかし、これは私のサーバーのローカル時間を与えていると考えます。

答えて

1

フラスコはサーバー側のみを担当します。

あなたの目的は、JavaScriptを使用してクライアントサイドタイムを取得し、サーバーに渡すことによって達成できます。

フォルダ構造

. 
├── app.py 
└── templates 
    └── index.html 

app.py

from flask import Flask, request, render_template 
import time 

app = Flask(__name__) 

@app.route("/") 
def index(): 
    return render_template("index.html") 

@app.route("/getTime", methods=['GET']) 
def getTime(): 
    print("browser time: ", request.args.get("time")) 
    print("server time : ", time.strftime('%A %B, %d %Y %H:%M:%S')); 
    return "Done" 

テンプレート/ index.htmlを

<script> 
function sendTimeToServer(){ 
    var time = new Date(); 
    var i = document.createElement("img"); 
    i.src = "/getTime?time=" + time; 
    document.getElementById("time").innerHTML = time; 
} 
</script> 
<button onclick="sendTimeToServer()">update time</button> 
<div id="time">Time: </div> 

コンソールの結果の例

# 1. open browser: http://127.0.0.1:5000 
# 2. click "update time" button 

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [01/Nov/2016 19:58:36] "GET/HTTP/1.1" 200 - 
browser time: Tue Nov 01 2016 19:58:37 GMT 0800 (CST) 
server time: Tuesday November, 01 2016 19:58:37 
127.0.0.1 - - [01/Nov/2016 19:58:37] "GET /getTime?time=Tue%20Nov%2001%202016%2019:58:37%20GMT+0800%20(CST) HTTP/1.1" 200 - 
関連する問題