Flask-Moment

本文介绍如何在服务器上使用协调世界时(UTC)处理时间,并通过Flask-Moment扩展在客户端渲染成当地格式。展示了如何安装Flask-Moment、配置以及在模板中使用moment.js来格式化时间戳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理时间和日期
服务器需要统一的时间单,和用户的地理位置无关,一般是使用协调世界时(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值