是否有将UTC时间戳转换为本地时间戳的功能或方法?
我将时间戳传递给角度时刻,但服务器的时间戳是UTC。
答案 0 :(得分:1)
请注意,JavaScript时间戳(即从Date.now()
或date.getTime()
检索的值)没有与之关联的时区。它只是自1970年1月1日00:00:00 UTC以来经过的毫秒数。在JavaScript中,没有 local 时间戳这样的东西。要将时间戳转换为使用机器本地时区的日期,您只需执行以下操作:
let myTimestamp = Date.now();
let dateInLocalTimezone = new Date(myTimestamp);
答案 1 :(得分:0)
目前还不清楚这个问题是关于解析还是格式化,或两者兼而有之,或者你是否只想在angular.js或ionic-framework中使用函数。以下是普通的ECMAScript。
是否有将UTC时间戳转换为本地时间戳的功能或方法?
是的,但这取决于时间戳是什么。如果它是ISO 8601扩展格式的字符串,如“2017-03-20T15:45:06Z”,那么在现代浏览器中,它可以使用Date构造函数(创建Date对象)或Date来解析内置解析器。解析(生成时间值)。
如果是任何其他格式,则应使用小型函数或库手动解析。
获得Date对象后,可以使用Date方法在主机时区中对其进行格式化,请参阅 Where can I find documentation on formatting a date in JavaScript?
e.g。
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'
}));