Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将日期从yyyy-mm-dd转换为dd-mm-yyyy_Javascript_Reactjs - Fatal编程技术网

Javascript 将日期从yyyy-mm-dd转换为dd-mm-yyyy

Javascript 将日期从yyyy-mm-dd转换为dd-mm-yyyy,javascript,reactjs,Javascript,Reactjs,我希望我的日期是dd-mm-yyyy格式,所以我写了下面的内容,以便重新组合我从日期选择器获得的日期。 我得到的不是17-05-2021,而是1,7-0,5-2,0,2,1 我能做些什么来避免这些逗号 我愿意接受关于如何以比我写的更有效的方式获得这次约会的其他建议 const minDate = new Date().toISOString().slice(0, 10) // outputs 2021-05-17 const [text, setText] = useState('')

我希望我的日期是dd-mm-yyyy格式,所以我写了下面的内容,以便重新组合我从日期选择器获得的日期。 我得到的不是
17-05-2021
,而是
1,7-0,5-2,0,2,1
我能做些什么来避免这些逗号

我愿意接受关于如何以比我写的更有效的方式获得这次约会的其他建议

  const minDate = new Date().toISOString().slice(0, 10) // outputs 2021-05-17

  const [text, setText] = useState('');
  const [urgent, setUrgent] = useState(false);
  const [date, setDate] = useState(minDate);

  const formatDate = () => {
    let tempDate = [...date];
    let day = tempDate.slice(8);
    let month = tempDate.slice(5, 7);
    let year = tempDate.slice(0, 4);
    let newDate = `${day}-${month}-${year}`;
    return newDate;
  };

  const handleSubmit = () => {
    let fixedDate = formatDate(date);
    console.log(newDate) // outputs 1,7-0,5-2,0,2,1
    if (text.length > 5) {
      props.addTask(text, urgent, fixedDate);
      setText('');
      setUrgent(false);
      setDate(minDate);
    } else alert('Task name too short!');
  };
日期选择器

<input
   type="date"
   min={minDate}
   value={date}
   onChange={(event) => setDate(event.target.value)}
/>
setDate(event.target.value)}
/>
const formatDate=(dateStr)=>{
常量[年、月、日]=dateStr.split('-');
设newDate=`${day}-${month}-${year}`;
返回newDate;
};
const formattedDate=formattdate('2021-01-31');

console.log(格式化日期)您可以像下面这样定义formatDate函数

const formatDate = date => `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getYear()}`;

您可以像这样使用split和join,而无需更改代码

 const formatDate = () => {
    let tempDate = [...date];
    let day = tempDate.slice(8);
    let month = tempDate.slice(5, 7);
    let year = tempDate.slice(0, 4);
    let newDate = `${day}-${month}-${year}`;
    return newDate.split(',').join('');   // Change This Line
  };

这将删除comas。

没有考虑解构它并将其作为一个全局函数,不仅是因为这个案例,谢谢,非常酷。我理解形成日期(“2021-01-31”)部分,其他人不理解,我认为这就是他们否决的原因