0

我正在使用 Vue 渲染一些数据,问题是存储在字段 created_at 中的日期是 UTC(我需要它在 EST 中)。

    <div class="row">
        <div class="col-md-3" v-for="result in results">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <p>createdAt:{{ result._source.created_at }}
                </div>
                <div class="panel-body">
                    <p>text:{{ result._source.text }}</p>
                </div>
            </div>
        </div>
    </div>

我尝试使用这个 javascript 变量来转换它,但我不确定如何实现它。

<script>
   var usaTime = new Date().toLocaleString("en-US", {timeZone: "America/New_York"});
   console.log('USA time: '+ (new Date(usaTime)).toISOString())
</script>

我是否需要将 created_at 的值传递给将转换日期的 javascript 函数?或者我可以从日期中减去八小时然后返回吗?

4

1 回答 1

3

如果您有一个DateUTC 对象,您可以使用您的代码在区域设置和时区中显示它,就像您在代码中所做的那样。

现场演示:

var utcTime = new Date("2020-10-16T18:00:00Z");
console.log('UTC Time: ' + utcTime.toISOString());
var usaTime = utcTime.toLocaleString("en-US", {timeZone: "America/New_York"});
console.log('USA time: '+ usaTime)

所以

我是否需要将 created_at 的值传递给将转换日期的 javascript 函数?

是的,假设您的result._source.created_at值被格式化为 UTC 日期,您可以将其传入并调用toLocaleString以适当地显示它。

也许是这样的:

<div class="panel-heading">
      <p>createdAt:{{ new Date(result._source.created_at).toLocateString("en-US", {timeZone: "America/New_York") }}</p>
 </div>
于 2020-11-16T18:36:46.467 回答