为什么我的时间在提交时没有显示正确的输出?

我正在使用下面的代码。一切都很好,但是当我发送信息时,它会以 24 小时格式发送。我该如何解决这个问题?现在它显示13:00我想显示1:00 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 gettime(){

      alert(document.getElementById("a_time").value);

    }

  </script>

</body>

  </html>


小唯快跑啊
浏览 99回答 3
3回答

一只甜甜圈

这是上一个答案的另一种方法,它使用模板文字字符串,使事情更简洁,更容易理解。这个想法是,您首先需要自己获取时间的小时部分并将其转换为整数。接下来,您需要编写逻辑来检查该数字是否大于 12 以检查它是否是 PM(并且还检查数字是0午夜还是12中午时的极端情况)。如果是午夜或中午,则返回 12。超过 12,取余数 mod 12。否则,按原样返回小时数。按原样附上会议记录,然后添加 AM 或 PM:<!DOCTYPE html><html><head><title>Page Title</title></head><body><input type="time" value=""&nbsp; id="a_time"><input type="button" onclick="gettime();" value="Click Here"><script type="text/javascript">&nbsp; function formatTime(timeStr) {&nbsp; &nbsp; &nbsp; const hours = timeStr.substring(0, 2);&nbsp; &nbsp; &nbsp; const mins = timeStr.substring(3, 5);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; const isTwelve = parseInt(hours) === 0 || parseInt(hours) === 12;&nbsp; &nbsp; &nbsp; const isPM = parseInt(hours) >= 12;&nbsp; &nbsp; &nbsp; return `${isTwelve ? "12" : isPM ? `0${parseInt(hours) % 12}` : hours}:${mins} ${isPM ? "PM" : "AM"}`&nbsp; }&nbsp; function gettime(){&nbsp; &nbsp; &nbsp; const formattedTime = formatTime(document.getElementById("a_time").value);&nbsp; &nbsp; &nbsp; alert(formattedTime);&nbsp; }</script></body></html>

茅侃侃

这就是你应该得到的。对这个问题的回答是,所谓24 hour format的就是它想应用的东西,官方命名为valid time string,可以在HTML 5.2:2 部分看到

波斯汪

尝试这个,<!DOCTYPE html><html><head><title>Page Title</title></head><body><input type="time" value=""&nbsp; id="a_time"><input type="button" onclick="gettime();" value="Click Here"><script type="text/javascript">function gettime(){&nbsp; &nbsp; var v = document.getElementById("a_time").value;&nbsp; &nbsp; var r = tConvert (v);&nbsp; &nbsp; alert(r);}function tConvert (time) {&nbsp; &nbsp; &nbsp; time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; if (time.length > 1) {&nbsp; &nbsp; &nbsp; &nbsp; time = time.slice (1);&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; time[5] = +time[0] < 12 ? 'AM' : 'PM';&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; time[0] = +time[0] % 12 || 12;&nbsp;&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; return time.join ('');&nbsp;}</script></body></html>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript