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

问题描述

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

from: {day: 3,month: 8,year: 2020}
to: {day: 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您的代码已修改。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...