簡體   English   中英

moment.js 給出了不正確的差異

[英]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');

那么以秒為單位的差異是正確的。

這里的問題是nowlimit_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.

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