我使用react-native创建了一个简单的表单 library与开始时间和结束时间。
我在问自己为什么我可以在ios上毫无问题地设置开始时间和结束时间,但当我在official documentation中找到时却无法在android中设置它它不是预期的最短时间选项。
是否存在解决此问题的任何解决方法或一些技巧?
该代码与示例中的代码非常相似,因此我没有提供它,但在这种情况下我可以编辑消息。
谢谢
最佳答案
根据文档,对于react-native-datepicker,Android不支持minDate。它在 ios 上运行良好。
注意:使用 prop 模式的“datetime”值。
我按照下面的方法解决了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
})
}
}
}
}
/>
希望对你有帮助!!
关于android - 如何在 TimePickerAndroid 中为 react native 设置最短日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49999476/