部分ios系统手机,通过日志查看,可复现机型包括:
1."model":"iPhone 13 Pro<iPhone14,2>","system":"iOS 15.5"
2."model":"iPhone X (GSM+CDMA)<iPhone10,3>","system":"iOS 15.4"
还包括iPhone 11 Pro max,iPhone 12 Pro max,iPhone 13 Pro max等部分机型
当ios手机把手机日期格式设置成12小时制时,
返回结果是:下午3:39,上午10:47 不是预期的 "hh:mm" 格式,
其中上午12点是指凌晨,这个问题存在了很长时间了,最近才得到重视,复现到了这个问题,
/**
* 处理时间格式
* @param { string } time 时间
*/
timeFormatProcessing(time) {
// 补零
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
};
var newTime, timeArr;
if (time.includes('上午')) { // 判断是否存在上午字段
newTime = time.replace('上午', ''); // 清除上午字段
timeArr = newTime.split(':'); // 分割
// 处理上午12点是凌晨的问题
if(+timeArr[0] == 12){
timeArr[0] = 0;
}
// 格式化时间并返回
return `${timeArr.map(formatNumber).join(':')}:00`
} else if (time.includes('下午')) { // 判断是否存在上午字段
newTime = time.replace('下午', ''); // 清除上午字段
timeArr = newTime.split(':'); // 分割
// 处理下午时间的问题,下午12点不用处理
if(+timeArr[0] < 12){
timeArr[0] = +timeArr[0] + 12;
}
// 格式化时间并返回
return `${timeArr.map(formatNumber).join(':')}:00`
} else { // 正常 "hh:mm" 格式,返回
return `${time}:00`;
}
},
这是我临时写的处理方式,希望广大网友指正。
同时希望可以得到官方说明。
你好是不是ios13及以下设备且设置中关闭了24小时制才出现的
你好 苹果12 iOS 14.2也复现了,选择上午12:00,e.detail.value中的值为00:00,这个要怎么解决