如何以12小时的AM/PM格式显示JavaScript日期时间?

489
你如何在JavaScript中以12小时制(AM/PM)显示日期和时间?

3
不要浪费时间,https://dev59.com/-Gox5IYBdhLWcg3w6oj0#17538193 这个方法可行。 - Ritesh
2
@Ritesh 警告:toLocaleTimeString() 的行为可能因地区/位置而异。 量好再切。 - Abandoned Cart
@AbandonedCart 这真的是一句俗语吗? - gilbert-v
1
@gilbert-v 在切割木材之前,应该仔细检查测量数据的准确性;否则可能需要重新切割,浪费时间和材料。不过,那个问题可能更适合在谷歌上提问。 - Abandoned Cart
2
我将永远不会习惯在 JavaScript 中尝试处理简单日期有多么麻烦。 - ashleedawg
33个回答

0

这是使用三目运算符最简单的方法,或者您也可以使用if else代替!

const d = new Date();
let hrs = d.getHours();
let m = d.getMinutes();
// Condition to add zero before minute
let min = m < 10 ? `0${m}` : m;
const currTime = hrs >= 12 ? `${hrs - 12}:${min} pm` : `${hrs}:${min} am`;
console.log(currTime);

这个程序将12pm表示为0:00pm。 - Jivan

-1
一个简短而精炼的实现:
// returns date object in 12hr (AM/PM) format
var formatAMPM = function formatAMPM(d) {
    var h = d.getHours();
    return (h % 12 || 12)
        + ':' + d.getMinutes().toString().padStart(2, '0')
        + ' ' + (h < 12 ? 'A' : 'P') + 'M';
};

-1

或者只需执行以下代码:

    <script>
        time = function() {
            var today = new Date();
            var h = today.getHours();
            var m = today.getMinutes();
            var s = today.getSeconds();
            m = checkTime(m);
            s = checkTime(s);
            document.getElementById('txt_clock').innerHTML = h + ":" + m + ":" + s;     
            var t = setTimeout(function(){time()}, 0);
        }

        time2 = function() {
            var today = new Date();
            var h = today.getHours();
            var m = today.getMinutes();
            var s = today.getSeconds();
            m = checkTime(m);
            s = checkTime(s);
            if (h>12) {
                document.getElementById('txt_clock_stan').innerHTML = h-12 + ":" + m + ":" + s;
            }               
            var t = setTimeout(function(){time2()}, 0);
        }

        time3 = function() {
            var today = new Date();
            var h = today.getHours();
            var m = today.getMinutes();
            var s = today.getSeconds();
            if (h>12) {
                document.getElementById('hour_line').style.width = h-12 + 'em'; 
            }
            document.getElementById('minute_line').style.width = m + 'em';  
            document.getElementById('second_line').style.width = s + 'em';  
            var t = setTimeout(function(){time3()}, 0);
        }

        checkTime = function(i) {
            if (i<10) {i = "0" + i};  // add zero in front of numbers < 10
            return i;
        }           
    </script>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接