使用 moment.js 将日期范围对象转换为 ISO-8601 格式

Convert date range object into ISO-8601 format using moment.js

我正在使用 this react based 日期范围选择器。它给了我一个 setSelectedDayRange 作为 fromto 的对象,像这样

from: {day: 3, month: 8, year: 2020}
to: {day: 8, month: 8, year: 2020}

我需要将上面的转换成ISO-8601 format。因为我已经在我的项目中安装了 moment.js,所以我希望能够利用它。

问题是

  1. 如果我尝试这样做的话

        setSelectedDayRange = moment();
        let convertedDate = moment().toISOString();
        console.log("setSelectedDayRange", convertedDate);
    

它只转换 to 日期。

  1. 如果我尝试这样做的话

         let convertedDate = moment(setSelectedDayRange).toISOString();
         console.log("setSelectedDayRange", convertedDate);
    

它最终转换 currentDate-1

handleDatePickerChange = (setSelectedDayRange) => {
        console.log("initializing handleDatePickerChange()");
        console.log("setSelectedDayRange", setSelectedDayRange);
        // TODO
        // convert the dates
        
        setSelectedDayRange = moment();
    
        let convertedDate = moment().toISOString();
        console.log("setSelectedDayRange", convertedDate);
    
    
        // let convertedDate = moment(setSelectedDayRange).toISOString();
        // console.log("setSelectedDayRange", convertedDate);
    
      
        this.setState({
          selectedDayRange: setSelectedDayRange,
        });
      };

Sandbox URL to mess around with it.

再见,如果您只需要将 setSelectedDayRange 转换为 toISOString 中的日期,您可以这样做:

let convertedDateFrom = moment(setSelectedDayRange.from).toISOString();
console.log("setSelectedDayRange", convertedDateFrom);

let convertedDateTo = moment(setSelectedDayRange.to).toISOString();
console.log("setSelectedDayRange", convertedDateTo);

Here 您的代码已修改。