簡體   English   中英

使用 Moment.JS 計算不同格式的兩個日期之間的差異

[英]Using Moment.JS to calculate difference between two dates in different formats

我正在使用 moment.js 來計算 Qualtrics 中兩個日期之間的差異。 到目前為止,下面的代碼運行得非常好。 日期使用 YY-mm-dd 格式,最后,我得到了天數的差異。

const duedate= Qualtrics.SurveyEngine.getEmbeddedData('duedate');
const daystodue = moment(duedate).diff(moment(new Date()), 'days', false);
Qualtrics.SurveyEngine.setEmbeddedData('daystill', daystodue );

問題是當我將嵌入數據'duedate'的格式從 YY-mm-dd 更改為 ISO 8601(例如,2021-10-19T20:30:48Z)時,這會停止工作。

我知道我可能還需要將new Date()的格式更改為 ISO,或者將'duedate'重新格式化回 YY-mm-dd,但我正在努力解決這個問題。 這是我嘗試過的:

const duedate= Qualtrics.SurveyEngine.getEmbeddedData('duedate');
const daystodue = moment(duedate).diff(moment(new Date().format("YYYY-MM- 
DDTHH:mm:ssZ")), 'days', false);
Qualtrics.SurveyEngine.setEmbeddedData('daystill', daystodue );

我以這篇文章為基礎,但我是 JavaScript 的初學者,無法弄清楚如何使其工作。

非常感謝任何幫助!

moment.js 非常聰明地理解兩種不同的格式並使用這些日期進行操作。 我試過這個,它的工作原理:

const dueDate = '2021-10-19T20:30:48Z'
const firstDayOfYear = '2021-01-01'
moment(dueDate).diff(moment(firstDayOfYear), 'days', false)

返回 291

注意:我使用過 Moment.js v2.29.1

我最終把它放在一起,這是有效的:

const duedate= Qualtrics.SurveyEngine.getEmbeddedData('duedate');
const today= new Date( );
const daystodue= moment(duedate).diff(moment(today), 'days', false);
Qualtrics.SurveyEngine.setEmbeddedData('daystill', daystodue);

感謝大家的洞察力!

暫無
暫無

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

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