Javascript 日期选择器返回我不想保存的时间
我正在尝试以下示例中的一个最小应用程序: 如何重现问题? 我按照上面链接中的2/3说明创建了这个项目。即: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;
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