web-dev-qa-db-ja.com

マテリアルUI日付ピッカー日付形式React

React app ??

ユーザーが日付を選択するとき、MM/DD/YYYYの形式にしたいと思います。いくつかの答えを調べましたが、フォーマットを変更する機能がどこに行くのか明確ではありませんか?何らかの理由で、オンラインになる場所の明確な機能/場所がありません>>

DatePickerコンポーネント

import React from 'react';
import DatePicker from 'material-ui/DatePicker';

/**
 * `DatePicker` can be implemented as a controlled input,
 * where `value` is handled by state in the parent component.
 */
export default class DateSelect extends React.Component {

  constructor(props) {
    super(props);

    this.state = {
      controlledDate: null,
      openSnackbar: false,
      snackbarText: {
        dateconf: 'Date has been entered!'
      }
    };
  }
  formatDate(date){


  return (date.getMonth() + 1) + "/" + date.getFullYear() + "/" +  date.getDate();
}
  handleChange = (event, date) => {
    console.log('we are in a handle change in date select', event, date)
    this.setState({
      controlledDate: date,
    });
    // this.setState({
        //  openSnackbar: true
        // })
  };

  render() {
    console.log('state and props in date select', this.state, this.props)

    return (
      <DatePicker formatDate={this.formatDate}
        hintText="Date of purchase"
        hintStyle={{color:'whitesmoke'}}
        inputStyle={{ color:'whitesmoke'}}
        value={this.state.controlledDate}
        onChange={this.props.onChange}
      />


    );
  }
}

     ///THE PARENT COMPONENT



   handleDatePicker = (name, date) => {
console.log('handling date change', name, date)
this.setState(prevState => ({
    currentRow: {
        ...prevState.currentRow,
        purchase_date: date
    },
    purchase_date: date,
    actionType: 'date'
}))
this.setState({
    openSnackbar: true
})

   }



                    <DateSelect 
                    hintText="Purchase date"
                    value = {this.state.purchase_date}
                    onChange={this.handleDatePicker}



                    />
4
Just_some_Noob

日付ピッカーで日付と時刻をフォーマットするには、formatDate関数を使用する必要があります

formatDate->この関数は、入力フィールドに表示される日付をフォーマットするために呼び出され、文字列を返す必要があります。デフォルトでは、ロケールとDateTimeFormatが指定されていない場合、日付オブジェクトはISO 8601YYYY-MM-DDにフォーマットされます。

<DatePicker formatDate={this.formatDate}
        hintText="Date of purchase"
        hintStyle={{color:'whitesmoke'}}
        inputStyle={{ color:'whitesmoke'}}
        value={this.state.controlledDate}
        onChange={this.props.onChange}
        formatDate={(date) => moment(new Date()).format('MM-DD-YYYY')}
      />

日付にフォーマットを渡さないと、最小日付と最大日付が機能していないようです。

詳細については material-ui/DatePicker

3
Ashh