具有当前时区的Angular 4 DatePipe

时间:2018-04-02 17:20:46

标签: angular timezone timezone-offset date-pipe

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

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

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

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

但我认为这是不可能的,我也认为Date.getTimezoneOffset()没有给我正确的格式,因为DatePipe期望类似'+0900'。有没有人碰到类似的东西?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

添加组件

$html = '<a href="http://somesite.com"><img src="http://somesite.com/image.png"></a>';
$dom = new DOMDocument();
$dom->loadHTML($html);
var_dump($dom->getElementsByTagName('a')[0]->getAttribute('href'));

HTML

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));
}

其他解决方案

组件

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

HTML

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