烧瓶错误未捕获的TypeError:moment...tz不是函数

问题描述

我正在将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 (将#修改为@)