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

如何以12小时AM/PM格式显示JavaScript日期时间?,javascript,datetime,date,time,format,Javascript,Datetime,Date,Time,Format,如何以12小时格式(AM/PM)显示JavaScript datetime对象? 函数格式AMPM(日期){ var hours=date.getHours(); var minutes=date.getMinutes(); var ampm=小时数>=12?“下午”:“上午”; 小时数=小时数%12; 小时数=小时数?小时数:12;//小时数“0”应为“12” 分钟=分钟

如何以12小时格式(AM/PM)显示JavaScript datetime对象?

函数格式AMPM(日期){
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;//小时数“0”应为“12”
分钟=分钟<10?'0'+分钟:分钟;
var strTime=hours+':'+minutes+''+ampm;
返回时间;
}
console.log(formatAMPM(新日期))签出。他们的内置格式化程序可以做到这一点:


这是一个非常方便的库,特别是当你打算用日期对象做其他事情时。

这里有一种使用正则表达式的方法:

console.log(新日期('7/10/2013 20:12:34')。toLocaleTimeString()。替换(/([\d]+:[\d]{2})(:[\d]{2})(.*)/,“$1$3”))

console.log(新日期('7/10/2013 01:12:34')。toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/,“$1$3”)
适用于en-US的短RegExp:

var d = new Date();
d = d.toLocaleTimeString().replace(/:\d+ /, ' '); // current time, e.g. "1:54 PM"

下面是另一种简单有效的方法:

        var d = new Date();

        var weekday = new Array(7);
        weekday[0] = "Sunday";
        weekday[1] = "Monday";
        weekday[2] = "Tuesday";
        weekday[3] = "Wednesday";
        weekday[4] = "Thursday";
        weekday[5] = "Friday";
        weekday[6] = "Saturday";

        var month = new Array(11);
        month[0] = "January";
        month[1] = "February";
        month[2] = "March";
        month[3] = "April";
        month[4] = "May";
        month[5] = "June";
        month[6] = "July";
        month[7] = "August";
        month[8] = "September";
        month[9] = "October";
        month[10] = "November";
        month[11] = "December";

        var t = d.toLocaleTimeString().replace(/:\d+ /, ' ');

        document.write(weekday[d.getDay()] + ',' + " " + month[d.getMonth()] + " " + d.getDate() + ',' + " " + d.getFullYear() + '<br>' + d.toLocaleTimeString());

    </script></div><!-- #time -->

var d=新日期();
var weekday=新数组(7);
工作日[0]=“周日”;
工作日[1]=“周一”;
工作日[2]=“星期二”;
工作日[3]=“星期三”;
工作日[4]=“周四”;
工作日[5]=“周五”;
工作日[6]=“周六”;
var月=新数组(11);
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
变量t=d.toLocaleTimeString().replace(/:\d+/,“”);
document.write(工作日[d.getDay()]+'、'+'+month[d.getMonth()]+'+d.getDate()+'、'+'+d.getFullYear()+'
'+d.toLocaleTimeString());
如果您不需要打印am/pm,我发现以下内容非常简洁:

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

这是基于@bbrame的答案

或者只需执行以下代码:

    <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>

时间=函数(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
m=检查时间(m);
s=检查时间(s);
document.getElementById('txt_clock')。innerHTML=h+“:“+m+”:“+s;
var t=setTimeout(函数(){time()},0);
}
time2=函数(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
m=检查时间(m);
s=检查时间(s);
如果(h>12){
document.getElementById('txt_clock_stan')。innerHTML=h-12+“:“+m+”:“+s;
}               
var t=setTimeout(函数(){time2()},0);
}
time3=函数(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
如果(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(函数(){time3()},0);
}
检查时间=功能(i){
如果(i我发现它工作正常

var date_format = '12'; /* FORMAT CAN BE 12 hour (12) OR 24 hour (24)*/
 
 
var d       = new Date();
var hour    = d.getHours();  /* Returns the hour (from 0-23) */
var minutes     = d.getMinutes();  /* Returns the minutes (from 0-59) */
var result  = hour;
var ext     = '';
 
if(date_format == '12'){
    if(hour > 12){
        ext = 'PM';
        hour = (hour - 12);
        result = hour;

        if(hour < 10){
            result = "0" + hour;
        }else if(hour == 12){
            hour = "00";
            ext = 'AM';
        }
    }
    else if(hour < 12){
        result = ((hour < 10) ? "0" + hour : hour);
        ext = 'AM';
    }else if(hour == 12){
        ext = 'PM';
    }
}
 
if(minutes < 10){
    minutes = "0" + minutes; 
}
 
result = result + ":" + minutes + ' ' + ext; 
 
console.log(result);
var date_format='12';/*格式可以是12小时(12)或24小时(24)*/
var d=新日期();
var hour=d.getHours();/*返回小时数(从0到23)*/
var minutes=d.getMinutes();/*返回分钟数(从0-59)*/
var结果=小时;
var-ext='';
如果(日期\格式=='12'){
如果(小时>12){
ext='PM';
小时=(小时-12);
结果=小时;
如果(小时<10){
结果=“0”+小时;
}否则,如果(小时==12){
小时=“00”;
ext='AM';
}
}
否则,如果(小时<12){
结果=((小时<10)?“0”+小时:小时);
ext='AM';
}否则,如果(小时==12){
ext='PM';
}
}
如果(分钟<10){
分钟=“0”+分钟;
}
结果=结果+”:“+分钟+”+分机;
控制台日志(结果);

和plunker示例

使用
dateObj.toLocaleString([locales[,options]])

选项1-使用区域设置

var date = new Date();
console.log(date.toLocaleString('en-US'));
选项2-使用选项

var options = { hour12: true };
console.log(date.toLocaleString('en-GB', options));

注意:除safari atm外,所有浏览器均支持该功能

如果您只想显示小时数,则

var time=新日期();
console.log(
time.tolocalString('en-US',{hour:'numeric',hour12:true})

);
您可以用这个简单的代码确定am或pm

var today=new Date();
var noon=new Date(today.getFullYear(),today.getMonth(),today.getDate(),12,0,0);
var ampm = (today.getTime()<noon.getTime())?'am':'pm';
var today=新日期();
var noon=新日期(今天.getFullYear(),今天.getMonth(),今天.getDate(),12,0,0);

var ampm=(today.getTime()据我所知,在没有扩展和复杂编码的情况下实现这一点的最佳方法如下:

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


单击按钮以字符串形式显示日期和时间

试试看 试试看

函数myFunction(){ var d=新日期(); var n=d.tolocalesting([],{hour:'2位',minute:'2位'}); document.getElementById(“demo”).innerHTML=n; } 函数fullDateTime(){ var d=新日期(); var n=d.tolocalstring([],{hour12:true}); document.getElementById(“demo2”).innerHTML=n; }
我的建议是使用矩js进行日期和时间操作

console.log(矩()格式('hh:mm a');

一个简短而甜蜜的实现:

// 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';
};
<
<h1 id="clock_display" class="text-center" style="font-size:40px; color:#ffffff">[CLOCK TIME DISPLAYS HERE]</h1>



<script>
            var AM_or_PM = "AM";

            function startTime(){

                var today = new Date();
                var h = today.getHours();
                var m = today.getMinutes();
                var s = today.getSeconds();

                h = twelve_hour_time(h);
                m = checkTime(m);
                s = checkTime(s);



                document.getElementById('clock_display').innerHTML =
                    h + ":" + m + ":" + s +" "+AM_or_PM;
                var t = setTimeout(startTime, 1000);

            }

            function checkTime(i){

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

            // CONVERT TO 12 HOUR TIME. SET AM OR PM
            function twelve_hour_time(h){

                if(h > 12){
                    h = h - 12;
                    AM_or_PM = " PM";
                }
                return h;

            }

            startTime();

        </script>
<script>
var todayDate = new Date();
var getTodayDate = todayDate.getDate();
var getTodayMonth =  todayDate.getMonth()+1;
var getTodayFullYear = todayDate.getFullYear();
var getCurrentHours = todayDate.getHours();
var getCurrentMinutes = todayDate.getMinutes();
var getCurrentAmPm = getCurrentHours >= 12 ? 'PM' : 'AM';
getCurrentHours = getCurrentHours % 12;
getCurrentHours = getCurrentHours ? getCurrentHours : 12; 
getCurrentMinutes = getCurrentMinutes < 10 ? '0'+getCurrentMinutes : getCurrentMinutes;
var getCurrentDateTime = getTodayDate + '-' + getTodayMonth + '-' + getTodayFullYear + ' ' + getCurrentHours + ':' + getCurrentMinutes + ' ' + getCurrentAmPm;
alert(getCurrentDateTime);
</script>
var d = new Date();
var amOrPm = (d.getHours() < 12) ? "AM" : "PM";
var hour = (d.getHours() < 12) ? d.getHours() : d.getHours() - 12;
return   d.getDate() + ' / ' + d.getMonth() + ' / ' + d.getFullYear() + ' ' + hour + ':' + d.getMinutes() + ' ' + amOrPm;
H, HH       24 hour time
h, or hh    12 hour time (use in conjunction with a or A)
moment(new Date()).format("YYYY-MM-DD HH:mm"); // 24H clock
moment(new Date()).format("YYYY-MM-DD hh:mm A"); // 12H clock (AM/PM)
moment(new Date()).format("YYYY-MM-DD hh:mm a"); // 12H clock (am/pm)
function getTime() {
var systemDate = new Date();
var hours = systemDate.getHours();
var minutes = systemDate.getMinutes();
var strampm;
if (hours >= 12) {
    strampm= "PM";
} else {
    strampm= "AM";
}
hours = hours % 12;
if (hours == 0) {
    hours = 12;
}
_hours = checkTimeAddZero(hours);
_minutes = checkTimeAddZero(minutes);
console.log(_hours + ":" + _minutes + " " + strampm);
}

function checkTimeAddZero(i) {
if (i < 10) {
    i = "0" + i
}
return i;
}
      var date = new Date();
      var hours = date.getHours();
      var minutes = date.getMinutes();
      var seconds = date.getSeconds();
      var ampm = hours >= 12 ? "pm" : "am";
function getDateTime() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var day = now.getDate();

  if (month.toString().length == 1) {
    month = '0' + month;
  }
  if (day.toString().length == 1) {
    day = '0' + day;
  }

  var hours = now.getHours();
  var minutes = now.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12;
  minutes = minutes < 10 ? '0' + minutes : minutes;
  var timewithampm = hours + ':' + minutes + ' ' + ampm;

  var dateTime = monthNames[parseInt(month) - 1] + ' ' + day + ' ' + year + ' ' + timewithampm;
  return dateTime;
}
    let now = new Date();

    new Intl.DateTimeFormat('default',
        {
            hour12: true,
            hour: 'numeric',
            minute: 'numeric'
        }).format(now);

    // 6:30 AM
09:56 AM
const formatAMPM = (date) => {
  let hours = date.getHours();
  let minutes = date.getMinutes();    
  const ampm = hours >= 12 ? 'pm' : 'am';

  hours %= 12;
  hours = hours || 12;    
  minutes = minutes < 10 ? `0${minutes}` : minutes;

  const strTime = `${hours}:${minutes} ${ampm}`;

  return strTime;
};

console.log(formatAMPM(new Date()));