【问题标题】:How to retrieve only the month/year in the value in material-ui date picker如何仅检索material-ui日期选择器中的值中的月/年
【发布时间】:2021-08-30 04:38:00
【问题描述】:

我有一个日期选择器,我将其修改为只允许用户选择月/年。现在,我只想要部分数据(月/年),因为它返回类似这样的内容

“2010 年 2 月 18 日星期四 21:11:54 GMT+0800(中国标准时间)”。

我正在考虑将整个字符串放入数组中并获取月份和年份的索引,但在此之前,我想知道是否有更好更快的方法。

现在,我正在做的是这样的

const [selectedDate, setSelectedDate] = useState(new Date());

const handleDateChange = (date) => {
   console.log(date);
};

<DatePicker
   variant="inline"
   openTo="year"
   views={["year", "month"]}
   label="Year and Month"
   value={"selectedDate"}
   onChange={handleDateChange}
/>

它记录“2010 年 2 月 18 日星期四 21:11:54 GMT+0800(中国标准时间)”。 我只想要“2010 年 2 月”。

【问题讨论】:

    标签: javascript reactjs material-ui


    【解决方案1】:
    let dateObj = new Date();
    

    对于本地日期:

    console.log((dateObj.getFullYear()) + "/" + (dateObj.getMonth() + 1));
    

    对于通用:

    console.log((dateObj.getUTCFullYear()) + "/" + (dateObj.getUTCMonth() + 1));
    

    【讨论】:

      【解决方案2】:

      要存储您在 selectedDate 变量中详细说明的日期,请将 handleDateChange 函数更改为此。

      const handleDateChange = (date) => {
        setSelectedDate(new Date(date.getFullYear(), date.getMonth()));
      }
      

      【讨论】:

      • 我试过这样做,但它记录了同样的事情
      • 对不起,我的错。同样的逻辑奏效了。在我的情况下,我只需要将其设为 selectedDate.getMonth() 和 selectedDate.getYear() 。非常感谢你,你为我节省了很多时间。编辑。我尝试为您的答案投票,但似乎我没有足够的分数来做到这一点。
      • 我已经更新了答案以更准确地表达我的意思。
      • 我在您指定的新 handleDateChange 函数中遇到问题。发生的情况是,当我只选择一次月份和年份时,它将记录上一个日期。我需要为控制台选择两次月份才能准确记录我选择的当前月份。
      • @captainalbert - 我需要查看运行 console.log 的代码才能知道这里发生了什么。
      猜你喜欢
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多