Я создал простую форму с помощью react-native, используя эту библиотеку со временем начала и временем окончания. Я спрашивал себя, почему я могу без проблем установить время начала и время окончания на ios, но я не могу установить его в android, когда я нашел в официальная документация, что параметр минимального времени не ожидается. Существует ли обходной путь или какой-то хак для решения этой проблемы?
Код настолько похож на тот, что в примере, поэтому я его не привожу, но на всякий случай могу отредактировать сообщение. Спасибо
Как установить минимальную дату в TimePickerAndroid для реакции
comment
Попробуйте следующую библиотеку, она работает как на Android, так и на iOS, и вы можете легко установить минимальную дату в средстве выбора даты, github.com/mmazzarolo/react-native-modal-datetime-picker
- person Patrick R   schedule 25.04.2018
comment
Хорошо, я попробую, как только смогу! Спасибо
- person michoprogrammer   schedule 26.04.2018
comment
@PatrickR, минимальная дата работает, а минимальное время - нет, поэтому проблема не решена. Есть ли у вас какие-либо рекомендации?
- person michoprogrammer   schedule 01.05.2018
comment
Вы пытались установить время в своем объекте minDate?
- person Patrick R   schedule 02.05.2018
comment
Конечно! Минимальная дата работает отлично, минимальное время - нет. Если я установлю минимальную дату, например, 02.05.2018, я не смогу установить дату раньше этого дня. Если я установлю минимальное время 09:30, я могу установить 08:00, и мне не нужно такое поведение. В библиотеке, которую вы сказали, вы можете прочитать эту дату MinimumDate - Min Date. Не работает с выбором времени на Android.
- person michoprogrammer   schedule 02.05.2018
comment
Я пытаюсь сказать, что в вашем средстве выбора времени попробуйте установить объект minDate как текущую дату + минимальное время, которое вы хотите предоставить. В соответствии с вашим примером вы должны установить Date d = new Date(); д.setHours (09); d.setMinutes(30); а затем добавьте дату d к MinimumDate
- person Patrick R   schedule 02.05.2018
Ответы (1)
Согласно документации, для react-native-datepicker minDate не поддерживается для Android. На ios работает нормально.
Примечание. Используйте значение datetime для режима prop.
Я следовал приведенному ниже методу, чтобы решить проблему в android.
<DatePicker
style={{width: 200}}
date={this.state.valueDate}
mode="datetime"
format="YYYY/MM/DD HH:mm"
minDate={new Date(Date.now()+(10 * 60 * 1000))} //To book after 10 minutes
confirmBtnText="Confirm"
cancelBtnText="Cancel"
customStyles={{
dateIcon: {
position: 'absolute',
left: 5,
top: 4,
marginLeft: 10
},
dateInput: {
marginLeft: 46
}
// ... You can check the source to find the other keys.
}}
onDateChange={(date) => { // returns 2019-10-15T23:23 - set in format prop
var selectedDate = new Date(date);
var dateNow = new Date();
var YYYY = dateNow.getFullYear();
var MM = dateNow.getMonth()+1;
var DD = dateNow.getDate();
var HH = dateNow.getHours();
var mm = dateNow.getMinutes()+10; //To book after 10 minutes
var minDate = new Date(YYYY+'/'+MM+'/'+DD+' '+HH+':'+mm)
var selectedYYYY = selectedDate.getFullYear();
var selectedMM = selectedDate.getMonth()+1;
var selectedDD = selectedDate.getDate();
var selectedHH = selectedDate. getHours();
var selectedmm = selectedDate.getMinutes();
if(Platform.OS == 'ios'){
this.setState({
valueDate:date,
date: selectedYYYY+'-'+selectedMM+'-'+selectedDD,
time: selectedHH+':'+selectedmm
})
}else{
if(selectedDate.getTime()<minDate.getTime()){ //getTime() - Get the time (milliseconds since January 1, 1970)
alert("You can book after 10 minutes from now!");
}else{
this.setState({
valueDate:date,
date: selectedYYYY+'-'+selectedMM+'-'+selectedDD,
time: selectedHH+':'+selectedmm
})
}
}
}
}
/>
Надеюсь поможет!!
person
Angathan Nesarasa
schedule
15.10.2019