簡體   English   中英

如何在TimePickerAndroid中為React-Native設置最小日期

[英]How to set min date in TimePickerAndroid for react-native

我使用這個帶有開始時間和結束時間的創建了一個帶有react-native的簡單表單。 我在問自己為什么我可以毫無問題地在ios上設置開始時間和結束時間,但是當我在官方文檔中發現它不是最短時間選項時,就無法在android中進行設置。 是否存在任何解決方法或某種破解方法來解決此問題?
該代碼與示例中的代碼非常相似,因此我沒有提供它,但是在這種情況下,我可以編輯消息。 謝謝

根據文檔,對於react-native-datepicker ,Android不支持minDate。 它適用於ios。

注意:將“ datetime”值用於prop -mode。

我遵循以下方法來克服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.getUTCFullYear();
                        var selectedMM = selectedDate.getUTCMonth()+1;
                        var selectedDD = selectedDate.getUTCDate();
                        var selectedHH = selectedDate. getUTCHours();
                        var selectedmm = selectedDate.getUTCMinutes();

                        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
                            })
                          }
                        }

                      }
                        }

                    />

希望對您有所幫助!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM