0

所以我有一个组件,我需要显示从端点接收到的日期,但我相信这些日期存储在 UTC 中。所以我一直在尝试使用 DatePipe 以更好的格式显示日期,但我还需要时区来匹配当前用户的时区。

<span>{{data[col.field] | date: 'short'}}</span>

我希望能够做这样的事情:

<span>{{data[col.field] | date: 'short':new Date().getTimezoneOffset()}}</span>

但我相信这是不可能的,而且我也认为Date.getTimezoneOffset()没有给我正确的格式,因为 DatePipe 期望像'+0900'. 有没有人遇到过类似的事情?

4

1 回答 1

2

您可以使用以下内容:

添加组件

addZero(number, length){
    var str = "" + number
    while (str.length < length) {
        str = '0'+str
    }
    return str
}

readableTimeZone(offset) {
    return ((offset<0? '+':'-') + addZero(parseInt(Math.abs(offset/60)), 2) + addZero(Math.abs(offset%60), 2));
}

HTML

<span>{{data[col.field] | date: 'short':readableTimeZone(new Date().getTimezoneOffset())}}</span>

其他解决方案

零件

getFormattedTimeZone() {
  return new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1].split(' (')[0].replace(/[A-Z]+/,'')
}

HTML

<span>{{data[col.field] | date: 'short':getFormattedTimeZone()}}</span>
于 2018-04-02T17:43:13.290 回答