簡體   English   中英

兩個時區格式的日期之間的moment.js差異

[英]moment.js diff between two timezone formatted dates

我必須計算設置時間與當前服務器時間之間的時差。

我正在使用momentjs和時刻時區庫。

這是我所擁有的:

var serverTime = moment.tz(new Date(), "Europe/Berlin").format();
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin").format();
var baz = bar.diff(serverTime);

console.log('server time is: ' + serverTime);
console.log('time diff is: ' + baz);

這給我一個錯誤:

TypeError: bar.diff is not a function

是否可以在兩個時區格式的日期之間進行區分? 如果沒有,使用momentjs庫進行這種計算的最佳方法是什么?

format會產生一個字符串,因此在需要字符串之前不要使用它。

var now = moment.tz("Europe/Berlin");
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin");
var baz = bar.diff(now);

console.log('current time is: ' + now.format());
console.log('time diff is: ' + baz);

請注意,這不是“服務器時間”,除非您在服務器上運行此代碼。 只要它在客戶端上運行,它仍然基於客戶端的時鍾-即使您使用其他時區也是如此。

moment.js確實很棒!

看來我可以簡單地做到:

moment.duration(day14.diff(serverTime)).asHours();

或分別獲取分鍾和小時的數字

moment.duration(day14.diff(serverTime)).minutes();
moment.duration(day14.diff(serverTime)).hours();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM