如何获得AM或PM?
我有大城市名字的按钮。
点击它们,我想在当地时间。
$('#btnToronto').click(function () { var hours = new Date().getHours(); var hours = hours-2; //this is the distance from my local time alert ('Toronto time: ' + hours + ' h'); //this works correctly });
但是我怎样才能获得AM或PM?
试试以下代码:
$('#btnToronto').click(function () { var hours = new Date().getHours(); var hours = (hours+24-2)%24; var mid='am'; if(hours==0){ //At 00 hours we need to show 12 am hours=12; } else if(hours>12) { hours=hours%12; mid='pm'; } alert ('Toronto time: ' + hours + mid); });
您应该能够检查小时数是否大于12。
var ampm = (hours >= 12) ? "PM" : "AM";
但是你在减去2之前考虑过小时小于2的情况吗? 您的小时数最终会为负数。
你可以这样使用,
var dt = new Date(); var h = dt.getHours(), m = dt.getMinutes(); var _time = (h > 12) ? (h-12 + ':' + m +' PM') : (h + ':' + m +' AM');
希望通过分钟也会更好。
与date.js
你可以写这样的
new Date().toString("hh:mm tt")
cheet sheet是格式说明符
tt
是AM/PM
如果hours
数小于12
,那就是上午 。
var hours = new Date().getHours(), // this is local hours, may want getUTCHours() am; // adjust for timezone hours = (hours + 24 - 2) % 24; // get am/pm am = hours < 12 ? 'am' : 'pm'; // convert to 12-hour style hours = (hours % 12) || 12;
现在,对于我,因为你没有使用getUTCHours
,它目前是2小时后
hours + ' ' + am; // "6 pm"
试试这个:
h = h > 12 ? h-12 +'PM' : h +'AM';
非常有趣的post。 在参数中取一个日期的函数中它可以显示如下:
function hourwithAMPM(dateInput) { var d = new Date(dateInput); var ampm = (d.getHours() >= 12) ? "PM" : "AM"; var hours = (d.getHours() >= 12) ? d.getHours()-12 : d.getHours(); return hours+' : '+d.getMinutes()+' '+ampm; }
没有扩展和复杂编码的最佳方法:
date.toLocaleString([], { hour12: true});
如何以12小时AM / PM格式显示javascript日期时间?