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 ) メソッドは 2 つのパラメーターを受け入れます。

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