moment()
オブジェクトを他の形式に変更する必要があります。たとえば、私は'yyyy-mm-dd'
という形式で日付を受け取り、それを'yyyy mm dd'
に変更する必要があります。私は現在このソリューションを使用しています。私はこれを行うよりエレガントな方法があることを知りたいですか?momentjs日付オブジェクト形式を別のものに変更する
let dateValue = moment(moment(value, 'YYYY-MM-DD').format('YYYY MM DD'), 'YYYY MM DD');
EDIT:
だから、問題は瞬間のオブジェクトが異なることではなかったようです。ここに私の完全なコードがあります:日付入力値を変更する場合
class EditRelation extends Component {
constructor(props) {
super(props);
const { validFrom, validTo } = props.relationMember;
this.state = {
validFrom: moment(validFrom, 'YYYY MM DD'),
validTo: moment(validTo, 'YYYY MM DD'),
}
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
const { id, type, value } = e.target;
e.preventDefault();
if (type == 'date') {
const dateValue = moment(value, 'YYYY-MM-DD');
if (id == 'validTo' && dateValue < moment()) {
return;
}
this.setState({ [id]: dateValue });
} else {
this.setState({ [id]: value });
}
};
render() {
const { validFrom, validTo } = this.state;
return (
<form onSubmit={this.handleSubmit} ref={(form) => { this.form = form; }}>
<Label for="validFrom"><FormattedMessage id="RELATION_EDIT_MODAL.ACTIVE_FROM" /></Label>
<Input
type="date"
name="validFrom"
id="validFrom"
value={validFrom.format('YYYY-MM-DD')}
onChange={this.handleChange}
/>
<Label for="validTo"><FormattedMessage id="RELATION_EDIT_MODAL.ACTIVE_TIL" /></Label>
<Input
type="date"
name="validTo"
id="validTo"
value={validTo.format('YYYY-MM-DD')}
onChange={this.handleChange}
/>
</form>
);
}
}
、私は、私は一瞬のオブジェクトフォーマットが異なるため、それがあったが、ケースのように思われないことをしかしThe specified value "Invalid date" does not conform to the required format, "yyyy-MM-dd".
を取得します。
瞬間を使って1つの文字列を別の文字列に変換しているようです。あなたは実際に瞬間オブジェクトまたは文字列だけを必要としますか? –
私は文字列ではなくオブジェクトが必要です。 –
「他の形式に瞬間()オブジェクトを変更する必要がある」とはどういう意味ですか?モーメントは日付を表します。異なるフォーマットの日付であれば文字列表現を作成できますが、オブジェクト自体は常に同じです。 –