代码之家  ›  专栏  ›  技术社区  ›  Elad Benda

类型错误:力矩(…)。tz不是函数

  •  2
  • Elad Benda  · 技术社区  · 7 年前

    我有这个js代码:

    toolFilters.filter('dateAccordingToTimeZone', function($filter) {
        // Gets the number of milliseconds pass from 1970 and convert it to time according to given timezone, currently
        // supported “Asia/Jerusalem” and “America/Los_Angeles”
        return function(milliSeconds, timeZoneId) {
            if (milliSeconds == 0) {
                return "";
            }
    
            return moment().tz(milliSeconds, timeZoneId).format('MMM d, y H:mm:ss z');  // 5am PDT
    
        };
    })
    

    还有这个html

    <script src="bower_components/moment/moment.js"></script>
    

    通过bower安装后

    但我有一个错误:

    VM9216:1 Uncaught TypeError: moment(...).tz is not a function
        at eval (eval at <anonymous> (filters.js:31), <anonymous>:1:10)
        at filters.js:31
        at fn (eval at compile (angular.js:15551), <anonymous>:4:485)
        at regularInterceptedExpression (angular.js:16658)
        at expressionInputsWatch (angular.js:16579)
    

    我怎样才能解决这个问题?

    正如我根据 official doc

    没有“require”,因为我使用原生js

    力矩()。format();
    1 回复  |  直到 5 年前
        1
  •  6
  •   Kristianmitk    7 年前

    矩时区是一个单独的模块,需要在矩之外安装。 请参见 document 查看如何安装。

    演示 没有 tz 模块:

    moment().tz();
    <script src="https://momentjs.com/downloads/moment.js"></script>
    </script>

    演示 具有 tz公司 模块:

    力矩()。tz();
    <script src="https://momentjs.com/downloads/moment.js"></script>
    <script src="https://momentjs.com/downloads/moment-timezone.min.js"></script>