我正在使用React Native的TimePickerAndroid
并使用12个小时的时间,
因此,它工作正常,并显示AM / PM以供选择,选择器返回了我几小时和几分钟,但是无论如何我都找不到使AM
被选中或PM
的代码,如下所示。
async showTimePicker() {
const { action, minute, hour } = await TimePickerAndroid.open({
is24Hour: false,
});
if (action === TimePickerAndroid.dismissedAction) {
return;
}
const selectedTime = `${hour}:${minute}`;
this.setState({ selectedTime })
}
我只需要知道选择了AM
或PM
一切正常。
official docs供参考。
谢谢。
答案 0 :(得分:2)
标志仅用于在计时器弹出窗口中向用户显示。一旦用户选择了时间,它将只为您提供24小时格式。如果用户选择“ 2:00 PM”,则返回值为14小时00分钟。在其他任何地方显示时,您都可以转换为AM / PM并显示它。
仅从TimePickerAndroid
开始使用24小时格式。
答案 1 :(得分:1)
您可以使用条件来显示AM / PM,在这里我为您添加了一个示例代码段。斯里拉曼的回答也解释了使用这种方法。
async showTimePicker() {
var { action, minute, hour } = await TimePickerAndroid.open({
is24Hour: false,
});
if (action === TimePickerAndroid.dismissedAction) {
return;
}
// setting AM/PM and hour to 12 by checking condition
let am_pm = 'AM';
if(hour>11){
am_pm = 'PM';
if(hour>12){
hour = hour - 12;
}
}
if(hour == 0){
hour = 12;
}
const selectedTime = `${hour}:${minute} ${am_pm}` ;
this.setState({ selectedTime })
}
答案 2 :(得分:0)
无论您设置的 bool 值为is24Hour,时间选择器都会以24小时格式返回小时。也就是说,如果选择8:00 PM,则时间选择器将返回JSON对象{action:'timeSetAction', hour:20, minute:0}
。
没错,official docs没有显示此内容。