JS关于12小时制的时间与24小时制的时间的格式切换

判断是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

猜你喜欢

转载自blog.csdn.net/z2000ky/article/details/130986463