判断是12小时制格式还是24小时制格式???
function getTimeFormat(time) {
const regex24Hour = /^([01]\d|2[0-3]):?([0-5]\d)$/;
const regex12Hour = /^(0?[1-9]|1[0-2]):?([0-5]\d)\s?(AM|PM)$/i;
if (regex24Hour.test(time)) {
return '24-hour format';
} else if (regex12Hour.test(time)) {
return '12-hour format';
} else {
return 'Unknown format';
}
}
const time1 = '14:00';
const time2 = '2:00 PM';
console.log(getTimeFormat(time1)); // 输出:24-hour format
console.log(getTimeFormat(time2)); // 输出:12-hour format
24转12
function convertTo12HourFormat(time) {
const [hour, minute] = time.split(':');
let convertedHour = parseInt(hour, 10);
let suffix = '';
if (convertedHour >= 12) {
suffix = 'PM';
if (convertedHour > 12) {
convertedHour -= 12;
}
} else {
suffix = 'AM';
if (convertedHour === 0) {
convertedHour = 12;
}
}
const formattedHour = convertedHour.toString().padStart(2, '0');
const formattedMinute = minute.toString().padStart(2, '0');
return `${formattedHour}:${formattedMinute} ${suffix}`;
}
const time24Hour = '14:00';
const time12Hour = convertTo12HourFormat(time24Hour);
console.log(time12Hour); // 输出:2:00 PM
12转24
function convertTo24HourFormat(time) {
const [hour, minute, suffix] = time.split(/:|\s/);
let convertedHour = parseInt(hour, 10);
if (suffix === 'PM' && convertedHour !== 12) {
convertedHour += 12;
} else if (suffix === 'AM' && convertedHour === 12) {
convertedHour = 0;
}
const formattedHour = convertedHour.toString().padStart(2, '0');
const formattedMinute = minute.toString().padStart(2, '0');
return `${formattedHour}:${formattedMinute}`;
}
const time12Hour = '2:00 PM';
const time24Hour = convertTo24HourFormat(time12Hour);
console.log(time24Hour); // 输出:14:00
知识点补充:
.padStart() 是 JavaScript 字符串的一个内置方法,用于在当前字符串的开头填充指定的字符,直到字符串达到指定的长度。这个方法可以用于补全字符串,确保字符串的长度满足特定的要求。
.padStart(targetLength, padString) 方法接受两个参数:
targetLength:要达到的最小长度,即希望字符串填充后的长度。
padString(可选):要用于填充的字符,它会重复使用,直到填充后的字符串达到指定的长度。如果不提供该参数,默认使用空格字符作为填充字符。
下面是一些示例来演示 .padStart() 方法的使用:
const str1 = 'hello';
console.log(str1.padStart(10)); // 输出:' hello',用空格填充到长度为 10
const str2 = 'hello';
console.log(str2.padStart(10, '-')); // 输出:'-----hello',用连字符填充到长度为 10
const str3 = 'hello';
console.log(str3.padStart(3)); // 输出:'hello',不进行填充,因为字符串已经达到或超过指定的长度
const str4 = '42';
console.log(str4.padStart(6, '0')); // 输出:'000042',用零填充到长度为 6
同理.padEnd方法被调用在字符串的结尾填充指定的字符,直到字符串的长度达到或超过目标长度。这可以确保字符串具有所需的最小长度,并以指定的字符进行填充。
const str1 = 'hello';
console.log(str1.padEnd(10)); // 输出:'hello ',用空格填充到长度为 10
const str2 = 'hello';
console.log(str2.padEnd(10, '-')); // 输出:'hello-----',用连字符填充到长度为 10
const str3 = 'hello';
console.log(str3.padEnd(3)); // 输出:'hello',不进行填充,因为字符串已经达到或超过指定的长度
const str4 = '42';
console.log(str4.padEnd(6, '0')); // 输出:'420000',用零填充到长度为 6