我正在使用 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 的初學者,無法弄清楚如何使其作業。
非常感謝任何幫助!
uj5u.com熱心網友回復:
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
uj5u.com熱心網友回復:
我最終把它放在一起,這是有效的:
const duedate= Qualtrics.SurveyEngine.getEmbeddedData('duedate');
const today= new Date( );
const daystodue= moment(duedate).diff(moment(today), 'days', false);
Qualtrics.SurveyEngine.setEmbeddedData('daystill', daystodue);
感謝大家的洞察力!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/331448.html
標籤:javascript 日期 瞬间
