gpt4 book ai didi

javascript - 如何在 React material-ui 日期选择器中格式化日期?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:49 25 4
gpt4 key购买 nike

我正在使用 material-ui 日期选择器字段实现 redux-form。日期在字段中完美设置,但是当我尝试将其发送到日期的后端 API 格式时:

BeginDate_1:2017 年 11 月 14 日星期二 15:03:43 GMT+0530 (IST)

我正在尝试将此格式更改为“YYYY-mm-dd”格式,然后再将其发送到后端 API。

我尝试使用momentjs 进行格式化,但无法得到我想要的结果。

这是我尝试过的:

Home.js

import React, {Component} from 'react';
import {Field, reduxForm} from 'redux-form';
import DatePicker from 'material-ui/DatePicker';
import {connect} from 'react-redux';
import * as moment from 'moment';

class Home extends Component {

renderCalendarField= ({
input,
label,
meta: {touched, error},
children,
...custom
}) => (
<DatePicker
floatingLabelText={label}
errorText={touched && error}
{...input}
value = {input.value !== ''? new Date(input.value) : null}
onChange={(event, value) => input.onChange(value)}
children={children}
{...custom}
formatDate={(date) => moment(date).format('YYYY-MM-DD')}

/>

)

render() {

const startDate = new Date();

const {handleSubmit} = this.props;

return (

<form onSubmit={handleSubmit(this.onSubmit.bind(this))}>


<div>
<Field name="BeginDate_1" component={this.renderCalendarField} label="DEPARTURE" minDate={startDate} />
</div>


<div>
<button type="submit">
Submit
</button>
</div>

</form>

);

}

}

const LogInForm = reduxForm({
form: 'MaterialUiForm', // a unique identifier for this form
validate
})(Home);

export default connect(mapStateTOProps, {getCity})(LogInForm);

控制台输出仍然是:

BeginDate_1:2017 年 11 月 14 日星期二 15:03:43 GMT+0530 (IST)

如何将此日期格式化为 YYYY-mm-dd 格式?

最佳答案

DatePicker 上的

formatDate 属性用于格式化 Display Date 而不是实际值。您需要做的是,使用 moment

格式化 onSubmit 函数中的值
onSubmit (values) {

const beginDate = moment(values.BeginDate_1).format('YYYY-MM-DD')
console.log(beginDate);
//other things
}

根据 material-ui/DatePicker docs :

formatDate: function

This function is called to format the date displayed in the input field, and should return a string. By default if no locale and DateTimeFormat is provided date objects are formatted to ISO 8601 YYYY-MM-DD.

Signature:

function(date: object) => any
date: Date object to be formatted.
returns (any): The formatted date.

关于javascript - 如何在 React material-ui 日期选择器中格式化日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47282701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com