![](/img/trans.png)
[英]Calculate and display difference between two dates using moment.js in React.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.