Flask中日期时间的简单处理
2016-08-12 22:07
176 查看
为什么要用
服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般使用协调世界时(UTC),但用户更希望看到当地时间,而且采用当地惯用的格式要想在服务器上只使用UTC,可以把时间单位发给Web浏览器,然后转换成当地时间并渲染
有个JS的日期处理类库
Moment.js,它可以在浏览器中渲染日期和时间,Flask-Moment拓展集成了
moment.js到Jinja2模板中,该拓展还依赖
jquery.js,不过已经在上文的Bootstrap中引入了,无需再引
如何用
先安装:pip install flask-moment
初始化:
from flask_moment import Moment moment = Moment(app)
在base模板的scripts块中引入这个库:
{% block scripts %} {{ super() }} {{ moment.include_moment() }} {% endblock %}
处理时间戳,把变量
current_time传入模板进行渲染:
from datetime import datetime @app.route('/') def index(): return render_template('index.html', current_time=datetime.utcnow())
接下来在模板(index.html)中渲染current_time:
{% extends "base.html" %} {% block title %}首屋{% endblock %} {% block page_content %} <h1>这里是一切的起点</h1> <h2>现在时刻:{{ moment(cur_time).format('LLL') }}</h2> {% endblock %}
format('LLL')根据客户端的时区和区域设置渲染日期时间,参数’L’到’LLLL’分别对应不同的复杂度,
format()函数还可接受自定义的格式说明符:
举个栗子,传入时间变量(出生年月)到渲染模板:
from flask import render_template from datetime import date @main.route('/') def index (): return render_template('index.html', time = date(1995,7,1))
然后在模板中渲染,通过
fromTime()获得差值,即年龄
<h2>现在时刻:{{ moment().format('L') }}</h2> <h2>已经度过:{{ (moment(time).fromNow(true))}}</h2>
运行:
fromNow()指定
refresh参数后,其内容会随着时间的推移而更新
Flask-Moment实现了
moment.js中的
format()、
fromNow()、
fromTime()、
calendar()、
valueOf()和
unix()方法,具体看Moments.js文档
Flask-Moment渲染的时间戳可实现多种语言的本地化,语言可在模板scripts块中设置,改为中文格式:
{{ moment.lang('zh-cn') }}
相关文章推荐
- Boost库简单运用——时间与日期的处理(一)
- Python中对时间日期的处理方法简单汇总
- Boost库简单运用——时间与日期的处理(三)
- 39.Oracle数据库SQL开发之 日期和时间的存储与处理——几个简单的存储检索日期
- Laravel中日期时间处理包Carbon的简单使用
- to_char对日期时间简单的处理
- Python简单时间日期处理
- 日期及时间处理包 Carbon 在 Laravel 中的简单使用
- Boost库简单运用——时间与日期的处理(二)
- Qt编程19:Qt时间日期的处理(QTime、QDateTime的使用比较简单)
- 【转帖】C++中对日期和时间的处理的函数简单介绍
- [xpnew收集:]Ms sql日期时间计算处理大全(吐血推荐)!
- jsp 中关于日期时间处理的几个问题
- 简单日期处理
- 发现一个很全的java处理时间日期类型的类
- .NET 中关于日期时间的格式化处理
- 处理时间和日期
- 浅谈JAVA时间日期处理函数
- C语言中对时间和日期的处理
- java的日期时间处理自定义类