问题描述
我正在将moment.js
与jquery datatables.net
一起使用。日期列已根据时区正确格式化,但我也想显示时区。像PKT,CST,CDT。
为此,我正在使用moment-timezone-with-data.js
,但它无法正常工作
未捕获的TypeError:moment(...)。tz不是函数
如何在日期列中附加时区。这是我的体现
__init.py__
moment = Moment(flask_app)
base.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data.js"></script>
{% block scripts %}
{{ moment.include_moment() }}
{% endblock %}
survey.html
function getSurveyData() {
if (datatable != null) {
datatable.destroy();
}
datatable = $('#survey').DataTable({
"pageLength": 100,"ajax": {
complete: function (mData) {
mValue = JSON.parse(mData.responseText);
getSummary(mValue.summary)
},"url": "/get_survey_data?from_date=" + $("#date_from_picker").val() + "&to_date=" + $(
"#date_to_picker").val(),"dataType": "json","dataSrc": "data","contentType": "application/json"
},"columns": [
{
"title": "Date",data: 'created_date',type: 'datetime-moment',render: function (data,type,row) { return data ? moment(data).tz('Asia/Karachi').format('YYYY-MM-DD HH:mm:ss') : ''; }
}
]
});
}
这有效
"columns": [
{
"title": "Date",row) { return data ? moment(data).format('YYYY-MM-DD HH:mm:ss') : ''; }
}
]
这会引发错误
"columns": [
{
"title": "Date",row) { return data ? moment(data).tz('Asia/Karachi').format('YYYY-MM-DD HH:mm:ss') : ''; }
}
]
**or this**
"columns": [
{
"title": "Date",row) { return data ? moment(data).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss') : ''; }
}
]
注意: 我可以看到控制台日志打印正确的时区
var zone_name = moment.tz.guess();
console.log(zone_name)
即使这可行,但数据表却无效。
var m = moment.tz("2013-11-18 11:55","America/Toronto").format("YYYY-MM-DD");
console.log(m)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)