Почему response-datepicker не выбирает правильную дату? - PullRequest
1 голос
/ 02 июля 2019

Я новичок в React, и я использовал этот указатель даты и использовал следующий код

    class Example extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      startDate: new Date()
    };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(date) {
    this.setState({
      startDate: date
    });
  }

  render() {
    return (
      <DatePicker
        selected={this.state.startDate}
        onChange={this.handleChange}
      />
    );
  }
}

Определение смены рукоятки дано ниже

handleChange(date) {
        this.setState({
            startDate: date
        });
    }

После этого я конвертировал эту дату в формат, который мне нужен в моей программе

var dateformat = (new Intl.DateTimeFormat('en-US',
            { year: 'numeric', month: '2-digit', day: '2-digit', 
hour: '2-digit', minute: '2-digit', second: '2-digit' }).format(this.state.startDate));

Иногда выбирается правильная дата. Но большую часть времени он возвращает 01-01-0001 12:00:00 AM дату и время по умолчанию.

В связи с этой датой ниже приведено исключение, которое я обычно получаю:

"System.Data.SqlTypes.SqlTypeException: переполнение SqlDateTime. Должно быть с 01.01.1753 12:00:00 до 31.12.9999 23:59:59. \ r \ n в System.Data.SqlTypes.SqlDateTime.FromTimeSpan (значение TimeSpan) \ r \ n в System.Data.SqlTypes.SqlDateTime.FromDateTime (значение DateTime) \ r \ n в System.Data.SqlTypes.SqlDateTime..ctor (значение DateTime) \ r \ n в System.Data.SqlClient.MetaType.FromDateTime (DateTime dateTime, Byte cb) \ r \ n в System.Data.SqlClient.TdsParser.WriteUnterminatedValue (значение объекта, Тип мета-типа, Байт-масштаб, Int32 actualLength, Int32 encodingByteSize, Смещение Int32, TdsParserStateObject stateObj, Int32 paramSize, Boolean isDataFeed) \ r \ n в System.Data.SqlClient.TdsParser.TdsExecuteRPC (_SqlRPC [] rpcArray, Тайм-аут Int32, логическое значение inSchema, запрос SqlNotificationRequest NotificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, логическая синхронизация, выполнение TaskCompletionSource 1 completion, Int32 startRpc, Int32 startParam)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource 1, тайм-аут Int32, задание и задача, логическое значение asyncWrite, метод String) \ r \ n в System.Data.SqlClient.SqlCommand.ExecuteReader (CommandBehavior поведение) \ r \ n в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (CommandBehavior поведение) \ r \ n в System.Data.Common.DbCommand.ExecuteReader () \ r \ n
в Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute (IRelationalConnection соединение, DbCommandMethod executeMethod, IReadOnlyDictionary 2 parameterValues)\r\n at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary 2 параметрValues) \ r \ n в Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute (IRelationalConnection подключение) "

Может ли кто-нибудь помочь мне понять, где я делаю ошибку? Есть ли какая-либо ошибка в этом устройстве выбора даты? Пожалуйста, дайте мне решение этой проблемы.

1 Ответ

0 голосов
/ 02 июля 2019

Для форматирования date, moment - хороший вариант.

moment(this.state.startDate).format('DD/MM/YYYY')

Демо

...