Номера выпусков относятся к номерам, назначенным на предоставленном снимке экрана.
Выпуск 1
Использование moment.duration()
и moment.diff()
правильно, однако,вы ссылаетесь на неопределенные объекты: вы должны ссылаться на свойства состояния:
this.setState({
sleepDuration: moment.duration(
moment(this.state.selectedEndDateTime).diff( // instead of this.selectedEndDateTime
moment(this.state.selectedStartDateTime))).asHours() // instead of this.selectedStartDateTime
})
Issue 2
Вы пытаетесь отформатировать объекты момента с фактическими значениями, что недопустимо.Пожалуйста, обратитесь к документации format .
Вместо этого вы должны сначала манипулировать объектом момента перед его форматированием, например:
selectedStartDateTime: moment().hours(0).minutes(0).format('ddd MMM D YYYY h:mm a').toUpperCase(),
selectedEndDateTime: moment().hours(8).minutes(0).format('ddd MMM D YYYY h:mm a').toUpperCase()
Обратите внимание на правильностьформатирование строки и это 12 AM это 0 часов .
выпуск 3
Вы не устанавливаете начальное время для средств выбора даты.В документации о реквизитах библиотеки сказано, что вы можете передать date
реквизит для установки начального значения:
<DateTimePicker
mode='datetime'
datetime='12:00'
isVisible={this.state.startDateTimePickerVisible}
onConfirm={this.handleStartDateTimePicked}
onCancel={this.hideStartDateTimePicker}
date={moment().hours(0).minutes(0).toDate()}
/>
<DateTimePicker
mode='datetime'
isVisible={this.state.endDateTimePickerVisible}
onConfirm={this.handleEndDateTimePicked}
onCancel={this.hideEndDateTimePicker}
date={moment().hours(8).minutes(0).toDate()}
/>