3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是上一個(gè)答案的另一種方法,它使用模板文字字符串,使事情更簡(jiǎn)潔,更容易理解。
這個(gè)想法是,您首先需要自己獲取時(shí)間的小時(shí)部分并將其轉(zhuǎn)換為整數(shù)。接下來,您需要編寫邏輯來檢查該數(shù)字是否大于 12 以檢查它是否是 PM(并且還檢查數(shù)字是0午夜還是12中午時(shí)的極端情況)。如果是午夜或中午,則返回 12。超過 12,取余數(shù) mod 12。否則,按原樣返回小時(shí)數(shù)。按原樣附上會(huì)議記錄,然后添加 AM 或 PM:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<input type="time" value="" id="a_time">
<input type="button" onclick="gettime();" value="Click Here">
<script type="text/javascript">
function formatTime(timeStr) {
const hours = timeStr.substring(0, 2);
const mins = timeStr.substring(3, 5);
const isTwelve = parseInt(hours) === 0 || parseInt(hours) === 12;
const isPM = parseInt(hours) >= 12;
return `${isTwelve ? "12" : isPM ? `0${parseInt(hours) % 12}` : hours}:${mins} ${isPM ? "PM" : "AM"}`
}
function gettime(){
const formattedTime = formatTime(document.getElementById("a_time").value);
alert(formattedTime);
}
</script>
</body>
</html>

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
這就是你應(yīng)該得到的。
對(duì)這個(gè)問題的回答是,所謂24 hour format
的就是它想應(yīng)用的東西,官方命名為valid time string
,可以在HTML 5.2:2 部分看到

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試這個(gè),
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<input type="time" value="" id="a_time">
<input type="button" onclick="gettime();" value="Click Here">
<script type="text/javascript">
function gettime(){
var v = document.getElementById("a_time").value;
var r = tConvert (v);
alert(r);
}
function tConvert (time) {
time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) {
time = time.slice (1);
time[5] = +time[0] < 12 ? 'AM' : 'PM';
time[0] = +time[0] % 12 || 12;
}
return time.join ('');
}
</script>
</body>
</html>
添加回答
舉報(bào)