1

嗨,我有一个 Angular 5 项目。我在根据用户时区显示日期时遇到问题。

这是我的示例代码片段。

  formatDateForTableDisplay(dateValueAsString: string) {

    console.log(dateValueAsString); // this will print for example 2020-05-31

    const dateObject = new Date(dateValueAsString);

    if (this.formGroup.get('frequency').value === 'PER_DAY') {
      return this.datePipe.transform(dateObject, 'mediumDate');
    } else if (this.formGroup.get('frequency').value === 'PER_MONTH') {
      return this.datePipe.transform(dateObject, 'LLL, yyyy');
    } else {
      return this.datePipe.transform(dateObject, 'yyyy');
    }
  }

问题是如果我们将日期字符串作为 2020-05-31 传递给函数 formatDateForTableDisplay。在另一个用户中,时区可能是 6 月 1 日,因为用户时区比 GMT 早 +8 小时,这需要打印为 2020-06-01 。我怎样才能实现它

谢谢你

4

1 回答 1

0

dateValueAsString以 2020-05-31 的身份进入,这意味着您没有小时、分钟或秒(在这种情况下,小时是最重要的)。所以你无法判断dateValueAsString是在凌晨 2 点保存(意味着它将保持为 2020-05-31)还是在晚上 11 点保存(意味着它应该转换为 2020-06-01)

于 2020-06-26T14:10:23.620 回答