处理时间和日期
服务器需要统一的时间单,和用户的地理位置无关,一般是使用协调世界时(UTC)
但是用户更希望看到当地时间。采用当地的惯用格式
在服务器上只使用UTC,解决方案:将时间单位发给web浏览器,转换为当地时间,然后渲染
web浏览器,可以获取用户电脑中的时区和区域设置
moment.js
javascript开发的优秀客户端开源代码库。
功能:
可以在浏览器中渲染时间和日期
Flask-momnet
是Flask程序扩展,将moment.js集成到jinja2模板中
安装:
pip install flask-moment
初始化:
from flask.ext.moment import Moment
moment = Moment(app)
Flask-Moment还依赖jquery.js
在HTML文档中引入这两个库
1. 直接引入,可以选择哪个版本
2. 使用扩展提供的辅助函数,
bootstrap引入了jquery.js,只需要运入moment.js即可
在基模板的scripts块中引入,moment.js库
{% block scripts%}
{{super()}}
{{moment.include_moment()}}
{%endblock%}
处理时间戳,flask-moment向模板开放了moment类
将变量current_time传入模板进行渲染
from datetime import datetime
@app.route('/')
def index():
return render_template('index.html',current_time=datetime.utcnow()))
如何在模板中渲染current_time
<p> The local date and time is {{moment(current_time).format('LLL')}}</p>
<p> that was {{moment(current_time).fromNow(refresh=True)}}</p>
format(‘LLL’):
根据客户端电脑的时区和区域设置渲染时间和日期
参数:
‘L’‘LLL’对应了不同的复杂度
还接受自定义的格式说明符
fromNow()
渲染相对时间戳,会随着时间的推移自动刷新显示的时间
时间戳最开始显示为a few seconds ago
指定refresh参数后,内容随着时间推移而更新,如果一直待在这个页面,几分钟后显示文本变成a minute ago
,2 minute ago
等