12시 AM / PM 형식으로 JavaScript 날짜 시간을 어떻게 표시합니까? 시간 형식 (AM /

12 시간 형식 (AM / PM)으로 JavaScript 날짜 / 시간 객체를 어떻게 표시합니까?



답변

function formatAMPM(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ' ' + ampm;
  return strTime;
}

console.log(formatAMPM(new Date));


답변

그냥 시간을 보여주고 싶다면 ..

var time = new Date();
console.log(
  time.toLocaleString('en-US', { hour: 'numeric', hour12: true })
);  

출력 : 오전 7시

당신도 분을 보여주고 싶다면 …

var time = new Date();
console.log(
  time.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })
);

출력 : 오전 7:23


답변

date.js 와 같은 것을 사용할 수도 있습니다 .

<html>
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>

<script>
   (function ()
   {
      document.write(new Date().toString("hh:mm tt"));
   })();
</script>
</html>


답변

정규식을 사용하는 방법은 다음과 같습니다.

console.log(new Date('7/10/2013 20:12:34').toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, "$1$3"))
console.log(new Date('7/10/2013 01:12:34').toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, "$1$3"))

이렇게하면 3 개의 일치하는 그룹이 생성됩니다.

  • ([\d]+:[\d]{2}) -시간 : 분
  • (:[\d]{2}) -초
  • (.*) -공백 및 기간 (마침표는 AM / PM의 공식 이름입니다)

그런 다음 첫 번째 및 세 번째 그룹이 표시됩니다.

경고 : toLocaleTimeString ()은 지역 / 위치에 따라 다르게 작동 할 수 있습니다.


답변

오전 / 오후를 인쇄 할 필요가 없다면 다음과 같은 간결하고 간결한 것을 발견했습니다.

var now = new Date();
var hours = now.getHours() % 12 || 12;  // 12h instead of 24h, with 12 instead of 0. 

이것은 @bbrame의 답변을 기반으로합니다.


답변

내가 아는 한 확장 및 복잡한 코딩없이 달성하는 가장 좋은 방법은 다음과 같습니다.

     date.toLocaleString([], { hour12: true});

자바 스크립트 AM / PM 형식

<!DOCTYPE html>
<html>
<body>
    <p>Click the button to display the date and time as a string.</p>

    <button onclick="myFunction()">Try it</button>
    <button onclick="fullDateTime()">Try it2</button>
    <p id="demo"></p>
    <p id="demo2"></p>
    <script>
        function myFunction() {
            var d = new Date();
            var n = d.toLocaleString([], { hour: '2-digit', minute: '2-digit' });
            document.getElementById("demo").innerHTML = n;
        }
        function fullDateTime() {
            var d = new Date();
            var n = d.toLocaleString([], { hour12: true});
            document.getElementById("demo2").innerHTML = n;
        }
    </script>
</body>
</html>

이 질문을 확인하는 것을 발견했습니다.

초를 표시하지 않고 .toLocaleTimeString ()을 어떻게 사용합니까?


답변

내 제안은 날짜 및 시간 작업에 순간 js를 사용하는 것입니다.

https://momentjs.com/docs/#/displaying/format/

console.log(moment().format('hh:mm a'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>