在我的角度应用程序中,我从后端API获得的日志时间为2019-01-21 05:05:11.000000(时区= UTC,时区类型= 3)。以同样的方式,使用以下代码获取当前时间。
removeFromCart(productdet) {
return this.getCartItems().then(result => {
if (result && result.length) {
const newList = result.filter(el => el.id !== productdet.id);
return this.storage.set(CART_KEY, newList);
}
})
}
我获得了currentTime的输出“ 1548152940836”。
我使用getTimezoneOffset()方法返回UTC时间与本地时间之间的时差。
const now = new Date();
const currentTime = now.getTime();
在我的应用程序中,我想获取记录的时间和currentTime之间的时差,并检查该时差是否大于7200秒。 但这使我产生的时差总是大于7200,000毫秒。
答案 0 :(得分:0)
如果您的lastLoginAt
字符串的格式与2019-01-21 05:05:11.000000
完全一样,并且表示UTC时间戳,那么在解析之前,您首先需要将其更改为2019-01-21T05:05:11.000000Z
。这是ECMAScript规范要求的ISO 8601扩展UTC格式(也是RFC 3339)。
然后,您可以简单地减去时间戳记。无需调整时区偏移,因为两个值均基于UTC。
(为方便起见,您也可以使用Date.parse
和Date.now
而不是分配Date
对象实例。两者都返回数字时间戳。)
const loggedTime = Date.parse(lastLoginAt.replace(' ', 'T') + 'Z');
const currentTime = Date.now();
if (currentTime - loggedTime > 7200000) {
}