0

我尝试使用时刻时区修改时间戳时区,并且我想使用应用的偏移量获取修改后的值

var newTimestamp = momentTz.tz(timestamp, 'Europe/Berlin')

所以这就是我尝试的

    var results = {};

    for (var timestamp in timestamps) {
         var commitCount = timestamps[timestamp];
         console.log(typeof timestamp)
         console.log(timestamp)
         console.log(moment(timestamp).format())
         //console.log(moment.tz(timestamp, 'Europe/Berlin'))
         //results[ moment.tz(timestamp, 'Europe/Berlin')] = commitCount;
   };

这是日志中的一个片段

string
1528063200
Invalid date

如何获得新的时间戳?

4

1 回答 1

0

看起来您的timestamp值是包含Unix 时间值的字符串,以秒为单位。X您可以立即使用格式说明符解析它们。

但是,您无法获得针对时区进行调整的这种格式的时间戳。这是因为 Unix 时间值始终基于 UTC。他们处于一个时区是荒谬的。任何这样的值都是错误的。

但是,您可以发出基于字符串的格式,例如ISO 8601 - 当您不向format函数提供任何参数时,这是默认的。

简而言之:

moment.tz('1528063200', 'X', 'Europe/Berlin').format() //=> '2018-06-04T00:00:00+02:00'
于 2018-06-05T16:10:57.030 回答