Как мне получить время на реакцию родного - PullRequest
0 голосов
/ 05 февраля 2019

Я использую библиотеку реагировать-нативно-модально-дату-время, чтобы получить время от пользователя.Но я получаю время с полной датой, как я должен получить время от этого.Ниже приведен мой код для получения времени.

    _showDateTimePicker = () => this.setState({ isDateTimePickerVisible: true });

            _hideDateTimePicker = () => this.setState({ isDateTimePickerVisible: false });

            _handleDatePicked = (time) => {
                console.log('A time has been picked: ', time);
                this._hideDateTimePicker();
            };

                <DateTimePicker
                    isVisible={this.state.isDateTimePickerVisible}
                    onConfirm={this._handleDatePicked}
                    onCancel={this._hideDateTimePicker}
                    mode='time'
                />

Я получаю timePicker, появляющийся на экране, но после выбора времени отображается полная дата с выбранным временем, но мне нужно только время
Вывод Iполучаю,

A time has been picked:  Tue Feb 05 2019 12:25:00 GMT+0530 (India Standard Time)

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

react-native-modal-datetime-picker фактически возвращает объект Javascript Date

Вы можете получить доступ к различным значениям, используя свойства объекта Date https://www.w3schools.com/jsref/jsref_obj_date.asp

Вы захотите использовать getHours() getMinutes() и getSeconds(), чтобы получить соответствующую информацию из вашей даты.

let date = new Date();

let hours = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
console.log(`${hours}:${minutes}:${seconds}`)

// how to handle the cases where time is one digit
function makeTwoDigits (time) {
  const timeString = `${time}`;
  if (timeString.length === 2) return time
  return `0${time}`
}

console.log(`${makeTwoDigits(hours)}:${makeTwoDigits(minutes)}:${makeTwoDigits(seconds)}`)

Для обработки случая, когда время возвращает единственную цифру, все, что вам нужно сделать, - это преобразовать полученное значение в строку, проверить ее длину и добавить 0вперед, если это не достаточно долго.

Вот закуска с рабочим кодом https://snack.expo.io/@andypandy/date-time-modal-picker

0 голосов
/ 05 февраля 2019

здесь время, возвращаемое response-native-modal-datetime-picker, является объектом JavaScript Date, поэтому вы можете получить часы, минуты и секунды, например:

 _handleDatePicked = (time) => {
        const hours = time.getHours();
        const minutes = time.getMinutes();
        const seconds = time.getSeconds();
        console.log('A time has been picked: ', hours, minutes, seconds);
        this._hideDateTimePicker();
    };     
0 голосов
/ 05 февраля 2019

Вы можете использовать new Date().let date = new Date(time).

Для часов:

date.getHours()

Для минут:

date.getMinutes()
...