'date'过滤器在angularjs中没有时区

时间:2015-02-19 12:22:45

标签: angularjs

这是输入格式: yyyy:MM:dd'T'HH:mm:ss'Z'(来自json服务的字符串)

必需的输出格式: dd-mmm-yyyy

我试过{{txnDate | date:'dd-mm-yyyy'}} 但它不起作用..

1 个答案:

答案 0 :(得分:1)

您日期的格式是什么?

快速var a = new Date(); a.toISOString();在控制台中会为您提供类似"2015-02-19T13:30:13.347Z"的内容。您收到的格式化字符串不遵循任何标准,我担心在大多数浏览器中将其解析为日期将导致Invalid Date

所以你可以

  1. 以适当的格式获取日期。

  2. 充分利用现有资料。您可以使用split将字符串分解为单个组件。

  3. 类似的东西:

    var a = "yyyy:MM:dd'T'HH:mm:ss'Z'" //Replace with actual string

    b=a.split(':')将导致["yyyy", "MM", "dd'T'HH", "mm", "ss'Z'"]b[0]b[1]中为您提供年份和月份。

    到目前为止,您可以使用b[2].substring(0,2)为您提供dd

    您有string所有日期组件(除时间组件外,您不需要)。

    直接使用它们(作为字符串)或使用这些组件创建日期对象(因为您需要MMM格式的月份)。

    $scope.txnDate = new Date(b[0]+'/'+b[1]+'/'+b[2].substring(0,2));

    我相信有更多方法可以优化它。如果这对您不起作用,请注意,将尝试详细说明。