Skip to content

Instantly share code, notes, and snippets.

@marihachi
Last active January 14, 2024 10:33
Show Gist options
  • Save marihachi/4bca5ecd3809b5cea44fde413e24509c to your computer and use it in GitHub Desktop.
Save marihachi/4bca5ecd3809b5cea44fde413e24509c to your computer and use it in GitHub Desktop.
英米式と日本式の時刻表記にそれぞれフォーマットするコード
/**
* 英米式の時刻表記でフォーマット
*
* @param { number } hour 0-23
* @param { number } min 0-59
* @param { number } sec 0-59
* @returns { string }
*/
function formatTimeEn(hour, min, sec) {
// AM 12 1 2 3 4 5 6 7 8 9 10 11
// PM 12 1 2 3 4 5 6 7 8 9 10 11
const h = (hour % 12) == 0 ? 12 : hour % 12;
const prefix = (hour / 12) < 1 ? 'AM' : 'PM';
const hourStr = h.toString().padStart(2, '0');
const minStr = min.toString().padStart(2, '0');
const secStr = sec.toString().padStart(2, '0');
return `${prefix} ${hourStr}:${minStr}:${secStr}`;
}
/**
* 日本式の時刻表記でフォーマット
*
* @param { number } hour 0-23
* @param { number } min 0-59
* @param { number } sec 0-59
* @returns { string }
*/
function formatTimeJa(hour, min, sec) {
// 午前0時
// 午前1時
// ...
// 午前11時
// 午後0時
// 午後1時
// ...
// 午後11時
const prefix = (hour / 12) < 1 ? '午前' : '午後';
const h = hour % 12;
return `${prefix}${h}時${min}分${sec}秒`;
}
/**
* 日本式の時刻表記でフォーマット (2)
*
* @param { number } hour 0-23
* @param { number } min 0-59
* @param { number } sec 0-59
* @returns { string }
*/
function formatTimeJa2(hour, min, sec) {
// AM 0 1 2 3 4 5 6 7 8 9 10 11
// PM 0 1 2 3 4 5 6 7 8 9 10 11
const prefix = (hour / 12) < 1 ? 'AM' : 'PM';
const h = hour % 12;
const hourStr = h.toString().padStart(2, '0');
const minStr = min.toString().padStart(2, '0');
const secStr = sec.toString().padStart(2, '0');
return `${prefix} ${hourStr}:${minStr}:${secStr}`;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment