关于javascript:如何将角度UTC时间戳转换为本地时间戳?

how to convert angular UTC timestamp to local timestamp?

本问题已经有最佳答案,请猛点这里访问。

是否有将UTC时间戳转换为本地时间戳的功能或方法?

我将时间戳传递给角度时刻,但服务器的时间戳是UTC。


请注意,JavaScript时间戳(即从Date.now()date.getTime()检索的值)没有与之关联的时区。它只是自1970年1月1日00:00:00 UTC以来经过的毫秒数。在JavaScript中,没有本地时间戳这样的东西。要将时间戳转换为使用机器本地时区的日期,您只需执行以下操作:

1
2
let myTimestamp = Date.now();
let dateInLocalTimezone = new Date(myTimestamp);


目前还不清楚问题是关于解析还是格式化,或两者兼而有之,还是只想在angular.js或ionic-framework中使用函数。以下是普通的ECMAScript。

Is there a function or a way to convert a UTC timestamp to a local time timestamp?

是的,但这取决于时间戳是什么。如果它是ISO 8601扩展格式的字符串,如"2017-03-20T15:45:06Z",那么在现代浏览器中,它可以使用Date构造函数(创建Date对象)或Date来解析内置解析器。解析(生成时间值)。

如果它是任何其他格式,那么应该使用小函数或库手动解析它。

获得Date对象后,可以使用Date方法在主机时区中对其进行格式化,请参阅在哪里可以找到有关在JavaScript中格式化日期的文档?

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var s ="2017-03-20T12:00:00Z"
var d = new Date(s);

// Browser default, implementation dependent
console.log(d.toString());

// Use toLocaleString with options, implementation dependent and problematic
console.log(d.toLocaleString(undefined,{
  weekday: 'long',
  day: 'numeric',
  month: 'long',
  year: 'numeric',
  hour: '2-digit',
  hour12: false,
  minute: '2-digit',
  second: '2-digit'
}));