[英]moment.js giving a incorrect diff between
我有以下代碼:
let moment = require('moment-timezone');
let now = moment().tz('America/Montevideo');
let limit_date = moment('2020-02-13 14:46:19', 'YYYY-MM-DD HH:mm:ss');
let diff = now.unix() - limit_date.unix();
console.log('now', now.format('DD/MM/YYYY HH:mm'));
console.log('limit_date', limit_date.format('DD/MM/YYYY HH:mm'));
console.log('diff', diff);
console.log('diff', now.diff(limit_date, 'seconds'));
當我運行代碼時,我得到以下控制台輸出:
now 13/02/2020 15:27:08
limit_date 13/02/2020 14:46:19
diff 6049
diff 6049
由於正確的差異應該是 2449 秒,我在這里做錯了什么?
更新
當我做
let now = _moment(_moment().tz('America/Montevideo').format('YYYY-MM-DD HH:mm:ss'), 'YYYY-MM-DD HH:mm:ss');
那么以秒為單位的差異是正確的。
這里的問題是now
和limit_date
在不同的時區。 當您指定沒有任何時區的時間時,它將瀏覽器默認語言環境作為時區。
初始化時使用時區作為第三個參數
moment('2020-02-13 14:46:19', 'YYYY-MM-DD HH:mm:ss', 'America/Montevideo');
let moment = require('moment-timezone'); let now = moment().tz('America/Montevideo'); let limit_date = moment('2020-02-13 14:46:19', 'YYYY-MM-DD HH:mm:ss', 'America/Montevideo'); let diff = now.unix() - limit_date.unix();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.