Javascript 日期选择器返回我不想保存的时间

Javascript 日期选择器返回我不想保存的时间,javascript,reactjs,rest,google-sheets,datepicker,Javascript,Reactjs,Rest,Google Sheets,Datepicker,我正在尝试以下示例中的一个最小应用程序: 如何重现问题? 我按照上面链接中的2/3说明创建了这个项目。即: npx create-react-app react-googlesheets 在index.js添加以下内容 import 'semantic-ui-css/semantic.min.css' 然后,我在App.js中使用了以下内容 import React,{useState}来自“React”; 从“语义ui反应”导入{按钮、表单、容器、标题}; 从“axios”导入axios;

我正在尝试以下示例中的一个最小应用程序:

如何重现问题? 我按照上面链接中的2/3说明创建了这个项目。即:

npx create-react-app react-googlesheets
index.js添加以下内容

import 'semantic-ui-css/semantic.min.css'
然后,我在App.js中使用了以下内容

import React,{useState}来自“React”;
从“语义ui反应”导入{按钮、表单、容器、标题};
从“axios”导入axios;
从“react semantic ui日期选择器”导入SemanticDatepicker//https://www.npmjs.com/package/react-semantic-ui-datepickers
导入'react semantic ui datepickers/dist/react semantic ui datepickers.css';
从“反应时间选择器”导入时间选择器//https://github.com/wojtekmaj/react-time-picker
//从“react datetime picker”导入DateTimePicker//https://www.npmjs.com/package/react-datetime-picker
导入“/App.css”;
函数App(){
//const[currentDate,onChange]=useState(new Date());
const[currentDate,setNewDate]=useState(newDate());
const onChange=(事件,数据)=>setNewDate(data.value);
const[getTime,setTime]=useState('10:00');
const[meter1,setM1]=使用状态(“”);
const[meter2,setM2]=使用状态(“”);
常数[meter3,setM3]=使用状态(“”);
console.log(当前日期);
常量handleSubmit=(e)=>{
e、 预防默认值();
const objt={currentDate,getTime,meter1,meter2,meter3};
axios
.邮政(
'https://sheet.best/api/sheets/xxx',
对象
)
。然后((响应)=>{
控制台日志(响应);
});
};
返回(
抄表条目
日期时间
{/*  */}
计量器1
setM1(e.target.value)}
/>
计量器2
setM2(e.target.value)}
/>
计量器3
setM3(e.target.value)}
/>
提交
);
}
导出默认应用程序;
我使用了谷歌表单,通过上面第一个链接提供的详细信息,使其变得友好

我在这里所做的是:一个家庭电表的录入系统,可以保存当前/自定义日期和时间

现在,我的问题是,当我保存日期时,它们看起来像:
2021-05-03T18:00:00.000Z


我使用了格式化程序,但没有帮助。日期选择器有什么问题吗?

当您调用
axios.post
-您正在发送
currentDate
作为类型日期,它使用
Date.toString
方法将其转换为字符串。默认情况下,
Date.toString
使用包含时区的完整日期时间格式。您应该在发送之前格式化日期,以便在后端获得它。您可以自己进行格式化,也可以使用以下库之一

下面是一个示例(没有任何库):

/。。。
函数myPrettyDateFormat(d){
const pureDateStr=d.toString().split('T')[0]
常量timeStr=`${d.getUTCHours()}:${d.getMinutes()}`
返回`${pureDateStr}${timeStr}`
}
函数App(){
const[currentDate,onChange]=useState(new Date());
// ....
常量handleSubmit=(e)=>{
e、 预防默认值();
const objt={currentDate:myPrettyDateFormat(currentDate),getTime,meter1,meter2,meter3};
axios
.邮政(
'https://sheet.best/api/sheets/xxx',
对象
)
。然后((响应)=>{
控制台日志(响应);
});

}
奥列格真的帮了大忙,但我想我应该记录下我最终是如何用他的代码解决的,这样,任何在Google Sheet上尝试处理日期/时间的确切软件包/库的人都会得到帮助

我会将整个App.js发布给任何想知道的人

import React,{useState}来自“React”;
从“语义ui反应”导入{按钮、表单、容器、标题};
从“axios”导入axios;
从“反应时间选择器”导入时间选择器//https://github.com/wojtekmaj/react-time-picker
从“react datetime picker”导入DateTimePicker//https://www.npmjs.com/package/react-datetime-picker
导入“/App.css”;
函数myPrettyDateFormat(d){
const pureDateStr=d.toString().split('GMT')[0];
返回`${pureDateStr}`
}
函数App(){
const[currentDate,onChange]=useState(new Date());
const[meter1,setM1]=使用状态(“”);
const[meter2,setM2]=使用状态(“”);
常数[meter3,setM3]=使用状态(“”);
常量handleSubmit=(e)=>{
e、 预防默认值();
const objt={currentDate:myPrettyDateFormat(currentDate),meter1,meter2,meter3};
axios
.邮政(
'https://sheet.best/api/sheets/xxxx',
对象
)
。然后((响应)=>{
控制台日志(响应);
});
};
返回(
抄表条目
日期时间
计量器1
setM1(e.target.value)} /> 计量器2
setM2(e.target.value)} /> 仪表3
setM3(e.target.value)} /> 提交 ); } 导出默认应用程序;
正如您可能注意到的,我目前正在使用react datetime选择器获取我的日期和时间
import 'semantic-ui-css/semantic.min.css'
npm install axios